首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Linux 系統安裝 MySQL 完整教學:從解壓到遠程連線配置

     編輯:MySQL 資料庫相關知識

Linux 環境下以二進制包(tar.gz)安裝 MySQL 是生產部署常態。本文以 MySQL 5.5.48 為例,記錄解壓、用戶建立、目錄授權、初始化、服務註冊、啟動、密碼設定、Socket 修復、遠程授權全流程。

安裝流程

  1. 解壓與部署:
    tar zxvf mysql-5.5.48-linux2.6-x86_64.tar.gz
    cp -r mysql-5.5.48-linux2.6-x86_64 /usr/local/mysql
  2. 建立用戶與目錄授權:
    groupadd mysql
    useradd -r -g mysql -s /bin/false mysql
    cd /usr/local/mysql
    chown -R mysql:mysql ./
    ./scripts/mysql_install_db --user=mysql
    chown -R root:root ./
    chown -R mysql:mysql data
  3. 服務註冊與啟動:
    cp support-files/mysql.server /etc/init.d/mysql
    service mysql start
    # 驗證
    ps -ef | grep mysql
  4. 設定 root 密碼:
    ./bin/mysqladmin -u root -h localhost.localdomain password '新密碼'
  5. 客戶端軟連結:
    ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql

關鍵問題排查:Socket 路徑不匹配

錯誤:Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
原因:/etc/my.cnf 指定 socket=/var/lib/mysql/mysql.sock,但客戶端預設找 /tmp/mysql.sock。
解決:建立軟連結

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

或修改 /etc/my.cnf 統一為 /tmp/mysql.sock。

遠程連線授權配置

問題:Windows Navicat 無法連線 Linux MySQL。
根因:mysql.user 表中 Host 欄位限制連線來源。
解決:

mysql> USE mysql;
mysql> UPDATE user SET Host='%' WHERE User='root';
mysql> FLUSH PRIVILEGES;

驗證:

mysql> SELECT User, Host, Password FROM user;
+------+-----------+-------------------------------------------+
| User | Host      | Password                                  |
+------+-----------+-------------------------------------------+
| root | %         | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+------+-----------+-------------------------------------------+

確認 Host='%' 且密碼一致即可遠程連線。

常見現象:Telnet 連線顯示亂碼

telnet 192.168.x.x 3306
# 顯示亂碼 + "mysql_native_password" 為正常協議握手過程,非錯誤

部署檢查清單

  • ✅ 解壓至 /usr/local/mysql
  • ✅ mysql 用戶/群組建立
  • ✅ mysql_install_db 初始化成功
  • ✅ data 目錄擁有者為 mysql:mysql
  • ✅ 服務註冊 /etc/init.d/mysql 並設定開機自啟
  • ✅ root 密碼已設定
  • ✅ Socket 路徑一致(軟連結或配置統一)
  • ✅ user.Host='%' 允許遠程
  • ✅ 防火牆開放 3306:iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
  • ✅ 遠程客戶端連線測試通過

Linux 二進制包安裝 MySQL 核心在於「目錄授權正確、Socket 路徑一致、用戶 Host 授權開放、防火牆放行」。建議將上述流程封裝為 Ansible Playbook 或 Shell 腳本,實現標準化、可重複的自動化部署。

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