Mysql

無法連接到在 Fedora 25 上執行的虛擬 mySQL 伺服器

  • May 5, 2017

嘗試在 mySQL 工作台上連接到我的虛擬 MySQL 伺服器 (VirtualBox Fedora 25)。

我正在使用 root 使用者,是的,我知道這不是最安全的,但對於我的測試來說它很好。

網上有很多關於這方面的資訊,但我讀到的所有東西都對我不起作用。

在安裝 mySQL 期間,我允許遠端連接到 root 使用者。

因此,我已使用以下命令授予 root 使用者所有權限:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'my_password';

我也臉紅PRIVILEGES

我在我的

# vi /etc/my.cnf

bind-address=0.0.0.0

我也開了一個埠

shell> iptables -A INPUT -m conntrack --ctstate NEW -m tcp -p tcp --dport 3306 -j ACCEPT
shell> iptables-save

我正在將我在 ifconfig 下看到的 inet ip 地址輸入到 mysql 工作台中。

我做錯什麼了嗎?還是我錯過了一步?

我收到錯誤消息“長時間暫停後無法連接到 mysql 數據庫 (10060)。

虛擬伺服器上的 IP 地址與我的連接設備路由器管理頁面上列為“未知”的地址相同。

這些命令有效!

firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload

“無法連接到 mysql 數據庫 (10060)”表示這不是身份驗證問題。

試試nc -v mysqlserver_ip_address 3306。它應該說’Ncat: Connected to …’ 如果是這樣,那意味著你有一個 TCP 連接,所以問題出在 mysql 或工作台上。如果它說其他內容,則網路內容已損壞或伺服器未在該埠上偵聽。

我懷疑你有一個防火牆丟棄你的數據包。長時間的停頓通常表示丟包,而不是連接被拒絕。如果您連接到非防火牆但未開放的埠,伺服器將很快向您發送拒絕。絕大多數情況下,如果連接超時,那是因為某些東西將數據包丟在地上,而不是禮貌地拒絕它們(在處理埠掃描您的盒子的人時,禮貌是非常愚蠢的)。這是防火牆經常做的事情。所以,這很可能是防火牆的事情。

你說你跑了iptables -A ....,這會將你的新行放在規則的末尾,這意味著它可能不會被使用,因為在你添加該規則之前可能有一個預設的 -j DROP 規則。此外, iptables-save 應該只是將配置列印到標準輸出,而不是實際將防火牆配置保存在正確的位置。

試試看iptables -L排序有沒有錯。如果是,您可以使用-I. 不過,更簡單的方法是執行iptables-save > some_temp_file,然後編輯 some_temp_file,然後執行iptables-restore < some_temp_file.

如果您確實讓防火牆按照您想要的方式工作,請執行iptables-save > /etc/wherever_it_goes. 在 fedora/redhat/centos 上是iptables save > /etc/sysconfig/iptables.

引用自:https://serverfault.com/questions/848493