在linux系统搭建mysql,启动mysql服务 service mysql start,然后在电脑上使用远程连接,报错2003 can not connect mysql server。
这时候是分二步解决:
1、阿里云服务器上安全组配置端口
2、 linux防火墙添加3306端口
1.需要在cent7中开放端口,开放端口需要开启防火墙。
systemctl stop firewalld.service 关闭防火墙 systemctl start firewalld.service 开启防火墙
2.对3306端口进行防火墙配置
firewall-cmd --zone=public --add-port=3306/tcp --permanent
会返回success
3.重启防火墙
systemctl restart firewalld.service
4.iptables设置
vim /etc/sysconfig/iptables
5.添加如下代码,放开3306端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
6.重启防火墙
systemctl restart firewalld.service
7.查看开放的端口
firewall-cmd --list-ports
如果返回的参数有3306端口即为成功
然后出现第二个问题 ip XXX not allowed to connect this mysql。
可能是你的帐号不允许从远程登陆,只能在localhost。
1、授权法。
1)例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
2)如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
3)如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
然后就成功连接了。