Ubuntu 安裝 MySQL 後預設僅允許本地連接(bind-address=127.0.0.1)。生產環境常需開放遠程訪問以便應用服務器、BI 工具、運維管理連接。本文記錄標準四步驟配置流程。
mysql -u root -p -- 登入後執行: CREATE USER 'custom'@'%.example.com' IDENTIFIED BY 'user_password'; -- 或允許任意 IP(僅內網/受信環境) CREATE USER 'custom'@'%' IDENTIFIED BY 'user_password';
% 通配符匹配任意主機GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON customer.* TO 'custom'@'%';
GRANT ALLvim /etc/mysql/my.cnf # 找到 [mysqld] 區段 # 註釋或修改 bind-address # bind-address = 127.0.0.1 bind-address = 0.0.0.0 # 監聽所有網卡
0.0.0.0 表示監聽所有網卡介面sudo service mysql restart # 或 systemd 系統 sudo systemctl restart mysql
# 客戶端測試 mysql -h-u custom -p -D customer # 服務端確認監聽 netstat -tlnp | grep 3306 # 應顯示 0.0.0.0:3306 或指定 IP:3306
| 現象 | 原因 | 解決 |
|---|---|---|
| Connection refused | bind-address 未改 / 防火牆阻擋 | 檢查 my.cnf、ufw/iptables 放行 3306 | Access denied | 賬號主機不匹配 / 密碼錯誤 | 檢查 user 表 Host 欄位、FLUSH PRIVILEGES |
| SSL connection required | MySQL 8.0+ 預設要求 SSL | 客戶端加 --ssl-mode=DISABLED 或配置憑證 |
| Authentication plugin | caching_sha2_password 客戶端不支援 | 改用 mysql_native_password 或升級驅動 |
mysql.user 表