有時候我們搭建了mysql服務,在服務器上可以登錄mysql,但是通過遠程就無法連接,能ping通,但是telnet 3306端口不通
可以通過以下步驟排查:
1、檢查監聽端口是否存在
netstat -ntlp |grep mysql
2、mysql配置文件
默認配置文件在/etc/my.cnf
在[mysqld]標簽中添加bind-address=addr可以配置綁定ip地址。不配置或者IP配置為0.0.0.0,表示監聽所有客戶端連接。
如:
[mysqld]
port = 3306
bind-address = 0.0.0.0
socket = /tmp/mysql.sock
datadir = /usr/local/mysql/var
skip-external-locking
3、mysql用戶訪問權限
進入mysql數據庫 $mysql -u root -p >use mysql; >select host,user from user; MySQL建用戶的時候會指定一個host,默認是127.0.0.1/localhost只能本機訪問; 其它機器用這個用戶帳號訪問會提示沒有權限,host改為%,表示允許所有機器訪問。 修改步驟: 1、GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; 2.FLUSH PRIVILEGES;
4、檢查防火牆是否開啟
service iptables stop #centos6
systemctl firewalld stop #centos7