使用 Navicat for MySQL 連接遠端 MySQL 資料庫時,常會遇到 2003 - Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (10061) 或 1045 - Access denied for user 'root'@'host' (using password: NO) 等錯誤。這兩個錯誤分別對應「連線被拒絕」與「權限不足」,本文將詳細說明原因與解決步驟。
MySQL 預設綁定本機回環地址(127.0.0.1),導致外部 IP 無法連線。
my.ini(Windows)或 my.cnf(Linux)。bind-address 參數,將其值從 127.0.0.1 改為伺服器的實際公網/內網 IP(例如 223.210.102.21),或直接註解掉該行以允許所有 IP 連線。[mysqld] 區塊下。net stop mysql && net start mysqlsystemctl restart mysqld 或 service mysql restartMySQL 預設僅允許 root@localhost 登入,遠程主機的 root 或其他用戶未被授權。
mysql -u root -p%)連線:GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
建議:生產環境請限制具體 IP,避免使用 %。caching_sha2_password 驗證插件相容性,必要時改用 mysql_native_password。完成上述步驟後,大多數遠程連線問題即可解決。若仍有異常,請檢查錯誤日誌(.err 檔案)或留言討論。