centos6中mysql开启远程连接的方法

作者:袖梨 2022-06-30

远程计算机打开 mysql 服务器:

#/etc/init.d/mysql.server start

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

./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控制台执行 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyPassword' WITH GRANT OPTION;

FLUSH PRIVILEGES;


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


4、不放心的话可以在mysql控制台执行 select host, user from user; 检查一下用户表里的内容

到此还是在客户端还是连接不上


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

/etc/init.d/iptables status

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

/etc/init.d/iptables stop


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

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

永久关闭:

chkconfig --level 35 iptables off

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

#/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
然后保存:
#/etc/rc.d/init.d/iptables save
 
查看打开的端口:

# /etc/init.d/iptables status

相关文章

精彩推荐