MySQL 連接超時
顯然,一位前數據庫管理員配置了我們的主數據庫伺服器(位於德國),以便只能從某些 IP 訪問它。現在我們剛剛添加了一個新主機(它需要訪問該數據),而對於我來說,我無法讓它這樣做。嘗試連接的 PHP 程序僅超時 30 秒,然後超時並出現以下錯誤:
$$ 19-Jan-2016 13:35:51 America/New_York $$PHP 警告:mysql_connect():第 10 行 /home/criterion/public_html/main_sms.php 中的連接超時
我檢查了 IP 表並添加了新客戶端的 IP,但無濟於事。
誰能告訴我“允許的 IP”列表或授予或拒絕訪問數據庫的類似內容在哪裡?
我做了一個“ select * from user_privileges;” 它列出了幾條記錄。有趣的是,在列出的 IP 中,沒有一個可以工作。所以這告訴我那不是那個地方。我一定是找錯地方了。
在 MySQL 中,請參閱
GRANTs
. 他們希望是GRANT ALL ON dbname.* TO user@'11.22.33.44' IDENTIFIED BY '...'.
您可能只需複制它並更改IP地址即可解決。好吧,將
IDENTIFIED BY
部分更改為IDENTIFIED BY PASSWORD('*1234ASDF...')
– 您在 中看到的 41 字元加密密碼mysql
。user
.注意:如果您使用的是 5.7,或者有“身份驗證外掛”,則說明可能會大不相同。
要麼…
可能是作業系統對埠 3306(或任何 MySQL 使用的)有防火牆保護,你需要在防火牆上戳另一個洞。
我敢肯定這個問題早就解決了,但至少在 5.6(如果這很重要,可以在 Windows 上執行),誰可以連接到 MySQL 伺服器包含在 中
SELECT * FROM mysql.user;
,特別是使用者和主機列。您可以使用萬用字元(例如 192.168.1.%)來指定範圍內的主機。我不必做多個特定的 IP,所以不確定這是否可能。如果找到的特定模式有限制
SELECT * FROM mysql.db;
所有這些都可以在左側邊欄 > 使用者和權限的管理選項卡上的 MySQL Workbench(我目前使用的是 v8.0.15)中找到。選擇使用者和
Login
選項卡並調整Limit to Hosts Matching:
欄位或選擇Schema Privileges
選項卡以根據需要限制架構訪問。