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

MySQL 遠程連線全攻略:從 Windows 連 Linux 實戰與常見錯誤排查

     編輯:MySQL 綜合教學

MySQL 遠程連線全攻略:從 Windows 連 Linux 實戰與常見錯誤排查

本文以 Windows 7 客戶端連接 Linux(192.168.0.53)MySQL 為例,詳細演示命令列連線語法、兩大高頻報錯(Can't connect、Access denied)的根因分析與解決方案,並提供 bind-address 綁定調整、遠程賬號授權、防火牆/雲安全組放行的完整檢查清單。

基礎連線命令

mysql -h 192.168.0.53 -P 3306 -u vicky -padmin
  • -h:目標主機 IP
  • -P:端口(預設 3306)
  • -u:用戶名
  • -p:密碼(緊跟 -p 無空格)

錯誤一:Can't connect to MySQL server on '192.168.0.53'

可能原因:

  1. MySQL 服務未啟動 → systemctl start mysqld 或 service mysql start
  2. MySQL 僅監聽 127.0.0.1 → 需修改 /etc/mysql/my.cnf 註釋 bind-address = 127.0.0.1 或改為 0.0.0.0,重啟服務
  3. 防火牆/安全組阻擋 3306 → iptables -A INPUT -p tcp --dport 3306 -j ACCEPT 或雲控制台放行

驗證監聽地址:

netstat -anp | grep 3306
# 正常應顯示 0.0.0.0:3306 或 :::3306

錯誤二:Access denied for user 'root'@'192.168.0.70' (using password: YES)

根因:root 預設僅允許 localhost 登入,mysql.user 表中無 % 或客戶端 IP 的授權記錄。

SELECT User, Host FROM mysql.user;
-- 僅顯示 root@localhost

解決方案:建立遠程可用賬號

-- 建立 vicky@% 允許任意 IP 連線,密碼 admin
GRANT ALL PRIVILEGES ON *.* TO 'vicky'@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
FLUSH PRIVILEGES;

生產環境建議將 % 縮小為具體應用伺服器 IP 段,並遵循最小權限原則。

完整排查清單

層級檢查項命令/操作
服務MySQL 運行狀態systemctl status mysqld
配置bind-addressgrep bind-address /etc/mysql/my.cnf
網路端口監聽netstat -anp | grep 3306
防火牆3306 放行firewall-cmd --add-port=3306/tcp --permanent
賬號遠程授權SELECT User, Host FROM mysql.user;
雲端安全組規則控制台入站規則添加 3306

連線成功驗證

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
+--------------------+
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved