您的位置:首页 > 数据库 > MySQL

mysql数据库远程访问设置方法

2016-04-29 19:28 841 查看
问题:局域网连接mysql报错:

ERROR 1130: Host ‘IPadress’ is not allowed to connect to this MySQL server

解决方法:

可能是帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称”%” 或添加一个用户为“%” 。

(一般添加一个用户即可)

想让局域网中的所有机器都能连接MySQL数据库,首先要给MySQL开启远程连接的功能,在MySQL服务器控制台上执行MySQL命令:

grant all privileges on . to root@”%” identified by ‘abc’ with grant option;

flush privileges;

其中上面两行代码的意思是给从任意ip地址连接的用户名为root,密码为abc的用户赋予所有的权限。其中的”%”为任意的ip地址,如果想设为特定的值也可以设定为特定的值(以通配符%的内容增加主机/IP地址,也可以直接增加IP地址)。

做完这些之后,局域网内的mysql服务器可以访问了。

–详细说明:

mysql数据库远程访问设置方法

1、修改localhost

更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改成”%”

mysql>use mysql;

mysql>update user set host = ‘%’ where user = ‘root’;

mysql>select host, user from user;

mysql>FLUSH PRIVILEGES;

2、指定授权

使用myuser/mypassword从任何主机连接到mysql服务器:

GRANT ALL PRIVILEGES ON . TO ‘myuser’@’%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;

使用myuser/mypassword从ip为192.168.225.166的主机连接到mysql服务器:

GRANT ALL PRIVILEGES ON . TO ‘myuser’@’192.168.225.166’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;

3、泛授权

mysql -h localhost -u root

mysql>GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ WITH GRANT OPTION; //赋予任何主机上以root身份访问数据的权限

mysql>FLUSH PRIVILEGES;

解决Mysql无法远程连接的问题

1、Mysql的端口是否正确

通过netstat -ntlp 查看端口占用情况,一般情况下端口是3306。在用工具连接MySQl是要用到端口。例如My Admin\My Query Browser\MySQl Front等。

2、检查用户权限是否正确

mysql库的user表里有两条记录:host分别为localhost和%(为了安全,%可以换成你需要外部连接的IP)。

3、查看/etc/mysql/my.cnf中,skip-networking 是否已被注掉

需要注掉

报错:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘192.168.51.112’ (111)

sudo gedit /etc/mysql/my.cnf

skip-external-locking

bind-address = 127.0.0.1

skip-name-resolve

4、查看iptables是否停掉,没关的情况下,无法连接

通过:service iptables stop临时关闭。

报错:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘192.168.51.112’ (113)

以上转至网络。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: