Mysql

MySQL 遠端訪問不起作用 - 埠關閉?

  • December 6, 2012

我無法建立到 MySQL 的遠端連接。從我的電腦上,我可以遠端登錄到現有伺服器上的 3306,但是當我嘗試對新伺服器進行相同操作時,它會掛起幾分鐘然後返回

# mysql -utest3 -h [server ip] -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '[server ip]' (110)

這是伺服器的一些輸出。

# nmap -sT -O localhost -p 3306
...
PORT     STATE  SERVICE
3306/tcp closed mysql
...


# netstat -anp | grep mysql
tcp        0      0 [server ip]:3306        0.0.0.0:*                   LISTEN      6349/mysqld
unix  2      [ ACC ]     STREAM     LISTENING     12286  6349/mysqld         /DATA/mysql/mysql.sock

# netstat -anp | grep 3306
tcp        0      0 [server ip]:3306    0.0.0.0:*        LISTEN      6349/mysqld
unix  3      [ ]         STREAM     CONNECTED     3306   1411/audispd

# lsof -i TCP:3306
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  6349 mysql   10u  IPv4  12285      0t0  TCP [domain]:mysql (LISTEN)

我在跑步…

作業系統 CentOS release 5.8 (Final) mysql 5.5.28 (Remi)

注意:與 mysql 的內部連接工作正常。

我禁用了 IPtables,盒子沒有其他防火牆,它在埠 80 上執行 Apache,ssh 沒問題。

已遵循本教程 - http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

我在my.cnf中綁定了IP地址

user=mysql
bind-address = [sever ip]
port=3306

我什至通過刪除數據儲存中的 mysql 文件夾並執行重新開始

mysql_install_db --datadir=/DATA/mysql --force

然後按照手冊重新創建所有使用者…

http://dev.mysql.com/doc/refman/5.5/en/adding-users.html

我創建了一個測試使用者

CREATE USER 'test'@'%' IDENTIFIED BY '[password]';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

所以我只能看到埠並沒有真正打開。我還能去哪裡看?

謝謝

# nmap -sT -O localhost -p 3306
...
PORT     STATE  SERVICE
3306/tcp closed mysql
...

在上面的命令中,您正在關閉埠,因為您的 mysql 在特定 IP 上而不是在 localhost 上執行。因此,當您在伺服器上執行此命令時,它將顯示埠已關閉。所以這是有道理的。如果你想讓它工作,你需要用值 0.0.0.0 替換 bind-ip

那麼,您能否將 localhost 替換為 server-ip 並在此處發布輸出。

另外,我知道你已經禁用了防火牆,但如果你能用這幾個命令幫助我,那就太好了:

iptables -L -n

貓 /etc/hosts.deny

此外,您是否在 mysql 中進行了任何優化並更改了任何變數的任何值。如果是,那麼也請發布相同的內容。

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