Mysql

MySQL 連接超時

  • November 26, 2019

顯然,一位前數據庫管理員配置了我們的主數據庫伺服器(位於德國),以便只能從某些 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 字元加密密碼mysqluser.

注意:如果您使用的是 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選項卡以根據需要限制架構訪問。

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