GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
% 代表任意主機,生產環境建議限定具體 IP 或網段 (如 '192.168.1.%')。
vi /etc/sysconfig/iptables
# 在 COMMIT 前插入
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
service iptables restart
# 或
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save
| 現象 | 原因 | 解決 |
|---|---|---|
ERROR 1290: --skip-grant-tables | MySQL 以跳過授權模式啟動 | 正常重啟 MySQL 移除該參數 |
Can't connect ... (10060/10065) | 防火牆攔截、MySQL bind-address 限制、網路不通 | 檢查 iptables、my.cnf bind-address=0.0.0.0、ping/telnet 測試 |
| 本機能連、遠程不能連 | 防火牆未開放、雲廠商安全組未放行 | 雲控制台加安全組規則、本機 iptables 放行 |
Host 'x.x.x.x' is not allowed | 用戶 host 欄位不匹配 | UPDATE mysql.user SET Host='%' WHERE User='myuser'; FLUSH PRIVILEGES; |
# 遠程測試
mysql -h 192.168.1.100 -u myuser -p
# 成功進入 mysql> 提示符即通
建議使用圖形工具 (MySQL Workbench、DBeaver、Navicat) 做日常管理,避免長期用命令列。