无法远程连接mysql

发布时间:2016-06-28 浏览次数:6277 文章来源:个人博客

今天在阿里云上搭建lnmp,搭建完了,想用本地navicat连接远程的mysql数据库,可是怎么样也连接不上,检查原因:


原因一:是不是mysql没有配置远程访问的帐号?


解决:

访问phpmyadmin。在用户里面,看看有没有一个帐号的主机值是“%”这样的帐号。“%”是指这个帐号能远程连接mysql,其他的localhost等代表该帐号只能本地访问mysql数据库。

如果没有“%”远程访问的用户,那么我们就需要新增一个这种用户了。


(如果没有phpmyadmin怎么办?直接用linux的mysql来安装)

mysql>GRANT ALL PRIVILEGES ON *.* TO admin@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql>flush privileges;


加上了这个远程的用户,可是发现还是连接不上...接着找原因:


原因二:是不是mysql监听的不是3306这个端口?

查看端口:

netstat -[atunlp]

看看mysql是不是对应3306这个端口。。还有,记得看3306前面是不是0.0.0.0这个ip,如果不是,那么就需要修改一下my.cnf这个文件了。

因为如果是127.0.0.1这样的ip,说明只是监听本机的请求的3306端口。所以远程是访问不了的。


修改my.cnf文件:文件一般都在/etc/my.cnf


在my.cnf里面找到bind-address,修改成bind-address=0.0.0.0;


这时候一切都修改好了,可是还是连接不上。。那么还有最后一个可能,就是linux服务器把端口给阻止了。。


原因三:服务器防火墙阻止了远程访问3306这个端口。

这个问题,需要去修改服务器的防火墙了

/etc/sysconfig/iptables

找到这个文件,打开,看看里面的3306端口的配置:

-A INPUT -P tcp -m tcp --dport 3306 -j DROP

把DROP改成ACCEPT就可以了。

这样,远程就能连接到mysql数据库了!

key-word
远程连接数据库 远程连接mysql 远程无法连接mysql