mysql無法設定遠端訪問

mysql無法設定遠端訪問

嘗試設定 mysql 以便從任何主機存取。

> 顯示 'root'@'%' 的補助金;

使用 GRANT 選項將 *.* 上的所有權限授予 'root'@'%'

我的cnf

[root@p419386 etc]# cat my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

/etc/my.cnf.d 中的檔案: client.cnf enable_encryption.preset mysql-clients.cnf server.cnf tokudb.cnf None 包含skip-networking

伺服器.cnf

bind-address=0.0.0.0

我使用 CentOS 7,uname -a給出

Linux p419386 2.6.32-042stab120.16 #1 SMP Tue Dec 13 20:58:28 MSK 2016 x86_64 x86_64 x86_64 GNU/Linux

MySQL 伺服器是10.1.21-MariaDB MariaDB Server

仍然無法從遠端主機連線:(

問題絕對不在網路或防火牆中。

以上設定是否正確?怎麼了?

畢竟問題找到了在 iptables 規則中。所以MySQL配置沒問題!

答案1

如果我們查看您擁有的配置(只要您明確發布它並告訴我們其中的內容),它看起來應該可以工作。至少官方 MariaDB 知識庫會表明這一點。

因此,您可能會遺失這些設定檔中的某些內容,或面臨不同的問題。雖然您確實說過該問題不能與網路或防火牆相關,但您的最新錯誤ERROR 2003 (HY000): Can't connect to MySQL server on '<host>' (113)表明它仍然可能是一個問題。

您可以嘗試使用 mysql 指令連線到伺服器上的本機 IP (127.0.0.1)。查看我連結的問題,您將使用:

mysql -h 127.0.0.1 -u root -p

如果您能夠使用該命令建立連接,您就會知道您的 MariaDB 已啟動並正在運行並接受基於 IP 的連接。

現在可能發生的情況是,它沒有綁定到外部 IP 位址(也許嘗試僅設定您的外部 IP bind-host),或者您的防火牆(用戶端或伺服器)或其他網路元件可能會幹擾並阻止連線。

若要檢查伺服器綁定的內容,您可以執行(以 root 身分或使用 sudo):

netstat -l -n -p

這應該會得到如下所示的一行:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
...
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1234/mysqld
...

如您所看到的,在本例中,MySQL 伺服器執行時間指向連接埠 3306 上的本機主機位址。

相關內容