mysql增加远程访问用户

mysql增加远程访问用户

十月 22, 2018

mysql增加远程访问用户

本地计算机连接远程 mysql服务器:

1
./mysql -h "192.168.1.244" -u root -p

发生错误:

ERROR 1130 (HY000): Host ‘192.168.1.100’ is not allowed to connect to this MySQL server

原因分析:

因为mysql服务器出于安全考虑,默认只允许本地登录数据库服务器。

###解决办法
1、在控制台执行 mysql -u root -p mysql,系统提示输入数据库root用户的密码,输入完成后即进入mysql控制台,这个命令的第一个mysql是执行命令,第二个mysql是系统数据名称,不一样的。
2、在mysql控制台执行

1
2
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyPassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;

3、在mysql控制台执行命令中的 ‘root‘@’%’ 可以这样理解: root是用户名,%是主机名或IP地址,这里的%代表任意主机或IP地址,你也可替换成任意其它用户名或指定唯一的IP地址;’MyPassword’是给授权用户指定的登录数据库的密码;另外需要说明一点的是我这里的都是授权所有权限,可以指定部分权限,

4、不放心的话可以在mysql控制台执行

1
select host, user from user;

检查一下用户表里的内容到此还是在客户端还是连接不上

此时检查下防火墙是否开启:

1
/etc/init.d/iptables status

会得到一系列信息,说明防火墙开着。则关闭:

1
/etc/init.d/iptables stop

另外直接在/etc/sysconfig/iptables中增加一行:

1
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT

永久关闭:

1
chkconfig --level 35 iptables off

记住防火墙一定要打开你指定的远程端口哦,如果是3306就要把它加入到防火墙,如

1
#/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

然后保存:

1
#/etc/rc.d/init.d/iptables save

查看打开的端口:

1
# /etc/init.d/iptables status