首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 基礎入門:安裝配置、遠程連接坑點、PHP 交互與 LAMP 架構解析

     編輯:MySQL 綜合教學

MySQL 基礎入門:從安裝到 LAMP 架構落地

MySQL 作為全球最流行的開源關係型資料庫,憑藉體積小、速度快、總擁有成本低、開源免費等優勢,成為中小型網站首選。本文涵蓋 Windows 下安裝配置、遠程授權避坑、PHP 連接驗證、核心概念解析與 LAMP 架構定位,助您快速建立生產可用的 MySQL 環境。

Windows 快速部署與驗證

  1. 下載 MySQL Installer (官網社區版),選擇 Server Only 或 Full 安裝。
  2. 安裝過程設置 root 密碼、啟用 Open Windows Firewall port、選擇 Standard Authentication (caching_sha2_password 8.0 預設)。
  3. 驗證服務:services.msc 確認 MySQL80 運行中;CMD 執行 mysql -u root -p 登入成功。

遠程連接授權:避開「! 特殊字符」與「Host 匹配」雙重坑

場景:應用服務器 172.16.100.185 需連接資料庫服務器。

坑 1:密碼含特殊字符 (! @ # $) 導致 Shell 解析錯誤

-- 錯誤示範:bash 將 ! 視為歷史擴展
mysql -h 172.16.100.185 -u wubx -pfd52!wubx
-bash: !wubx: event not found

-- 正確:單引號包裹密碼
mysql -h 172.16.100.185 -u wubx -p'fd52!wubx'

坑 2:授權 Host 不匹配 (localhost vs % vs 具體 IP)

-- 1. 登入資料庫
mysql -u root -p

-- 2. 創建用戶並授權 (採用 8.0 語法)
CREATE USER 'wubx'@'172.16.100.185' IDENTIFIED BY 'fd52!wubx';
GRANT ALL PRIVILEGES ON wubx.* TO 'wubx'@'172.16.100.185';
FLUSH PRIVILEGES;

-- 3. 驗證
SELECT User, Host FROM mysql.user WHERE User='wubx';

關鍵點:

  • Host='172.16.100.185' 僅允許該 IP;Host='%' 允許任意 IP (生產慎用)。
  • 8.0 以前 GRANT ... IDENTIFIED BY 隱式創建用戶,8.0 必須顯式 CREATE USER。
  • 防火牆/安全組需放行 3306 端口。

PHP 連接驗證腳本

<?php
$host = '172.16.100.185';
$user = 'wubx';
$pass = 'fd52!wubx';
$db   = 'wubx';

$mysqli = new mysqli($host, $user, $pass, $db);
if ($mysqli->connect_errno) {
    die("Connect failed: " . $mysqli->connect_error);
}
echo "Connected successfully! Server version: " . $mysqli->server_info;
$mysqli->close();
?>

推薦使用 mysqli 或 PDO (預處理語句防注入),mysql_* 函數已在 PHP 7.0 移除。

核心概念速懂

概念通俗解釋
MySQL數據倉庫:存文字、圖片、結構化數據,提供增刪改查 (CRUD) 接口
SQL與數據庫對話的標準語言:SELECT 查、INSERT 增、UPDATE 改、DELETE 刪
PHP網站開發語言:接收 HTTP 請求 → 調用 MySQL → 返回 HTML/JSON
Apache/NginxWeb 服務器:處理靜態資源、反向代理 PHP-FPM
Linux作業系統:穩定、免費、生態完善的服務器首選

LAMP / LNMP 架構定位

用戶瀏覽器
    ↓ HTTP
Nginx/Apache (靜態/代理)
    ↓ FastCGI
PHP-FPM (業務邏輯)
    ↓ TCP 3306
MySQL (數據持久化)
    ↓
Linux Kernel (資源調度)
  • LAMP:Linux + Apache + MySQL + PHP (經典、成熟、.htaccess 支援好)。
  • LNMP:Linux + Nginx + MySQL + PHP (高併發、低記憶體、靜態處理快,現代主流)。

MySQL vs SQL Server 快速對比

維度MySQLSQL Server
授權開源免費 (GPL/商業雙授權)商業收費 (Core/Server+CAL)
跨平台Linux/Windows/macOS 全支援Windows/Linux (功能受限)
儲存引擎插件式 (InnoDB/MyISAM/Memory...)單一引擎
事務/鎖InnoDB 行鎖 + MVCC行鎖 + 鎖升級
生態工具豐富開源生態微軟生態深度整合
適用場景互聯網、中小應用、雲原生企業級 ERP、.NET 生態、BI 整合

新手避坑清單

  1. root 密碼複雜度:含特殊字符時 Shell/配置文件均需轉義或引號包裹。
  2. 字符集統一:庫/表/連接全鏈路 utf8mb4,避免 Emoji 截斷。
  3. 時區一致:SET time_zone = '+08:00'; 或配置文件 default-time-zone。
  4. 備份策略:每日全量 + Binlog 增量,定期演練恢復。
  5. 監控基線:Threads_connected、Slow_queries、Innodb_buffer_pool_reads。

總結

MySQL 入門核心在於「安裝規範化、授權精準化、字符集統一化、架構清晰化」。掌握 LAMP/LNMP 數據流向、遠程授權 Host 匹配規則、PHP 現代連接方式,即可構建穩定可擴展的數據層基礎設施。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved