远程访问mysql的错误解决方法

2017-06-01

远程访问mysql经常会出现下面的一些错误,我用自己经过了一些小波折后找到了一些解决方法,不过我的mysql是转载linux系统上的,不过windows平台也是类似的原理。下面是小编跟大家分享的是远程访问mysql的错误解决方法,欢迎大家来阅读学习~

远程访问mysql的错误解决方法

工具/原料

xshell

mysql

方法/步骤

如果出现下面这种情况,一般是防火墙屏蔽了mysql的3306端口,我们需要开启3306端口

执行下面的命令

[root@doctortang bin]# /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

[root@doctortang bin]# /etc/rc.d/init.d/iptables save

[root@doctortang bin]# /etc/init.d/iptables restart

如果执行查看防火墙状态的命令:

[root@doctortang bin]# /etc/init.d/iptables status

会出现下面情况则说明开启3306端口成功了(就是下面图中的3306)

此时再访问有可能会遇到下面这种图的报错,这是因为我们还没给mysql设置一个可以让我们从我们当前ip远程访问的用户及密码(我自己的本地ip为192.168.1.140)

现在假设你想让用户名为root的用户从ip为192.168.1.140的主机连接到mysql服务器,并使用123456作为密码,可以执行下面的命令(为了使修改立即生效,可多次执行FLUSH PRIVILEGES命令,我这里执行了两次)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.140' IDENTIFIED BY

-> '123456' WITH GRANT OPTION;

mysql> FLUSH PRIVILEGES;

mysql> FLUSH PRIVILEGES;

6此时再以用户名root,密码123456去访问mysql就可以了

7这里说多两种我试过的适合其他情况的设置,第一种就是如果想任何主机都能以用户名为root,密码为123456都能访问mysql,可以执行下面命令

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

8然后让修改生效

mysql> FLUSH PRIVILEGES;

这样就可以在其它任何的主机上以用户名root和密码123456远程访问mysql了

9另一种是如果只想用户root从ip为192.168.1.6的主机只能访问其中某一个数据库名为db,并使用123456作为密码,可以执行命令

mysql>GRANT ALL PRIVILEGES ON db.* TO 'root'@'192.168.1.3' IDENTIFIED BY '123456' WITH GRANT OPTION;

mysql>FLUSH PRIVILEGES;

更多相关阅读

最新发布的文章