MySQL无法远程访问多半是我配置不正确,如果默认连接是localhost是你是无法使用IP连接你远程mysql服务器的,但我们只要简单配置开一下权限即可解决.
问题:MySQL权限设置正确,但仍无法远程访问,通过telnet发现3306端口未打开.
分析:MySQL默认只绑定127.0.0.1,即,只有在本机才能访问3306端口.
linux中解决:找到MySQL配置文件,搜索“bind-address”,找到这一行:
bind-address = 127.0.0.1 //这里可以绑定远程IP地址
在前面加一个#,注释掉这一行,保存,重启MySQL,再通过远程访问就可以了,telnet可以发现端口也打开了.
1,改表法.
可能是你的帐号不允许从远程登陆,只能在localhost,这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%",代码如下:
- CODE:mysql -u root -p123
- mysql>use mysql;
- mysql>update user set host = '%' where user = 'root';
- mysql>select host, user from user;
如果想指定主机可以方法我们可以绑定,想指定1个IP远程访问mysql,已经在本地执行了,代码如下:
- mysql>GRANT ALL PRIVILEGES ON . TO user1@"192.168.1.3" IDENTIFIED BY "mypassword" WITH GRANT OPTION;
- mysql>FLUSH PRIVILEGES;
且本地防火墙已打开了mysql端口,为什么在远程用$mysql -h192.168.1.2 -u user1 -p无法访问呢? |