关于mysql服务器3306端口不能远程连接的解决
生活随笔
收集整理的這篇文章主要介紹了
关于mysql服务器3306端口不能远程连接的解决
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
問題:本機(jī)可以通過3306端口連接mysql服務(wù)器,但遠(yuǎn)程不行。
1、網(wǎng)絡(luò)檢測(cè)
? ?1)ping主機(jī)可以;
? ?2)telnet 主機(jī)3306端口不可以;
? ? ?telnet 主機(jī)22端口可以;
? ?說(shuō)明與本機(jī)網(wǎng)絡(luò)沒有關(guān)系;
2、端口檢測(cè)
? ?1)netstat -ntpl |grep 3306
? ? tcp ? ? ? ?0 ? ? ?0 :::3306 ? ? ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?-?
? ?2)netstat -ntpl |grep 22
? ? tcp ? ? ? ?0 ? ? ?0 0.0.0.0:22 ? ? ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN ? ? ?- ??
? ?可以看出22端口監(jiān)聽所有地址,而3306只監(jiān)聽本機(jī)地址(綁定了到了本地),所以遠(yuǎn)程無(wú)法訪問。
? ? 對(duì)于端口只允許本機(jī)訪問,有兩個(gè)地方啟用,一個(gè)是防火墻啟用3306,一個(gè)就是mysql配置綁定本機(jī)地址。
3、防火墻檢測(cè)
? ?1)iptables --list查看;
? ?2)開啟防火墻3306端口
? ? ?vi /etc/sysconfig/iptables
? ? ?-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允許3306端口通過防火墻)?
? ? ?/etc/init.d/iptables restart(重啟防火墻使配置生效)
? ?3)或者直接關(guān)閉防火墻;
? ?參考:http://blog.csdn.net/fjssharpsword/article/details/50973283
4、mysql配置文件檢查
? ?檢查my.cnf的配置,bind-address=addr可以配置綁定ip地址。
? ?不配置或者IP配置為0.0.0.0,表示監(jiān)聽所有客戶端連接。
? ?#ps -aux | grep mysql ?查看進(jìn)程ID是3340
? ?#ll /proc/3340 查看進(jìn)程程序情況,找配置文件
? ?或者#which mysql 找程序路徑
5、mysql用戶訪問權(quán)限
? ?進(jìn)入mysql數(shù)據(jù)庫(kù)
? ?$mysql -u root -p
? ?>use mysql;
? ?>select host,user from user;
? ? MySQL建用戶的時(shí)候會(huì)指定一個(gè)host,默認(rèn)是127.0.0.1/localhost只能本機(jī)訪問;
? ? 其它機(jī)器用這個(gè)用戶帳號(hào)訪問會(huì)提示沒有權(quán)限,host改為%,表示允許所有機(jī)器訪問。
1、網(wǎng)絡(luò)檢測(cè)
? ?1)ping主機(jī)可以;
? ?2)telnet 主機(jī)3306端口不可以;
? ? ?telnet 主機(jī)22端口可以;
? ?說(shuō)明與本機(jī)網(wǎng)絡(luò)沒有關(guān)系;
2、端口檢測(cè)
? ?1)netstat -ntpl |grep 3306
? ? tcp ? ? ? ?0 ? ? ?0 :::3306 ? ? ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?-?
? ?2)netstat -ntpl |grep 22
? ? tcp ? ? ? ?0 ? ? ?0 0.0.0.0:22 ? ? ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN ? ? ?- ??
? ?可以看出22端口監(jiān)聽所有地址,而3306只監(jiān)聽本機(jī)地址(綁定了到了本地),所以遠(yuǎn)程無(wú)法訪問。
? ? 對(duì)于端口只允許本機(jī)訪問,有兩個(gè)地方啟用,一個(gè)是防火墻啟用3306,一個(gè)就是mysql配置綁定本機(jī)地址。
3、防火墻檢測(cè)
? ?1)iptables --list查看;
? ?2)開啟防火墻3306端口
? ? ?vi /etc/sysconfig/iptables
? ? ?-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允許3306端口通過防火墻)?
? ? ?/etc/init.d/iptables restart(重啟防火墻使配置生效)
? ?3)或者直接關(guān)閉防火墻;
? ?參考:http://blog.csdn.net/fjssharpsword/article/details/50973283
4、mysql配置文件檢查
? ?檢查my.cnf的配置,bind-address=addr可以配置綁定ip地址。
? ?不配置或者IP配置為0.0.0.0,表示監(jiān)聽所有客戶端連接。
? ?#ps -aux | grep mysql ?查看進(jìn)程ID是3340
? ?#ll /proc/3340 查看進(jìn)程程序情況,找配置文件
? ?或者#which mysql 找程序路徑
5、mysql用戶訪問權(quán)限
? ?進(jìn)入mysql數(shù)據(jù)庫(kù)
? ?$mysql -u root -p
? ?>use mysql;
? ?>select host,user from user;
? ? MySQL建用戶的時(shí)候會(huì)指定一個(gè)host,默認(rèn)是127.0.0.1/localhost只能本機(jī)訪問;
? ? 其它機(jī)器用這個(gè)用戶帳號(hào)訪問會(huì)提示沒有權(quán)限,host改為%,表示允許所有機(jī)器訪問。
總結(jié)
以上是生活随笔為你收集整理的关于mysql服务器3306端口不能远程连接的解决的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux开关机时长查看
- 下一篇: Centos环境下mysql源码编译安装