Mysql

遠端連接到 MySQL 數據庫的問題

  • August 2, 2016

大家下午好。

我在 2 個不同的網路上有 3 台伺服器,它們都執行 MySQL。

我可以mysql -u<user> -p -h<ip-addr>從伺服器 1 使用到伺服器 2 並返回沒有問題。

當我嘗試從伺服器 3(位於不同的網路上)到伺服器 1 使用該命令時,我得到以下資訊:-

$ mysql -u<user> -p -h<hostIP>
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '<hostIP>' (146)
$

我知道相同的命令可以使用相同的密碼從伺服器 2 到伺服器 1。我最初的想法是伺服器 3 和伺服器 1 之間存在網路阻塞,但如果是這種情況,那麼伺服器 3 將不會收到密碼提示。

我還查看了伺服器 1 中的使用者表,使用者對本地連接和網路連接具有相同的密碼(這就是它從伺服器 2 到伺服器 1 的原因)。

在密碼提示之後,是否有除 3306 之外的其他埠用作連接的一部分?或者,做不到這一點,我錯過了什麼?

非常感謝,

大衛

這可能有多種原因,但要開始進行故障排除,因為它看起來像是權限/授予的問題。

1.請在伺服器 1 上檢查並分配適當的授權:

GRANT ALL PRIVILEGES ON db.* TO 'username'@'server3_ip' IDENTIFIED BY 'Password';

flush privileges;

上述查詢中的所有內容都不是強制性的。

2.仔細檢查My.cnf中的Bind參數。

bind-address 0.0.0.0

希望這有助於我們進一步調試。

引用自:https://dba.stackexchange.com/questions/145616