Cause:
1. The database is not authorized;
2. The server firewall does not open port 3306.
Solution:
1. The database is not authorized
There is no authorization for the mysql database, just use one command.
(Recommended tutorial: centos usage tutorial)
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; //远程连接数据库的时候需要输入用户名和密码 用户名:root 密码:123456 指点ip:%代表所有Ip,此处也可以输入Ip来指定Ip 输入后使修改生效还需要下面的语句 mysql>FLUSH PRIVILEGES;
2. The server firewall does not open port 3306
centos has two FirewallD and iptables firewall
centos7 uses FirewallD firewall.
FirewallD is a front-end controller for iptables, used to implement persistent network traffic rules. It provides command line and graphical interfaces and is available in the repositories of most Linux distributions. Compared with directly controlling iptables, there are two main differences in using FirewallD:
1. FirewallD uses zones and services instead of chain rules.
2. It dynamically manages rule sets, allowing rules to be updated without destroying existing sessions and connections.
FirewallD is a wrapper around iptables that allows you to manage iptables rules more easily - it is not a replacement for iptables. Although iptables commands can still be used with FirewallD, it is recommended that only FirewallD commands be used when using FirewallD.
1. FirewallD firewall opens port 3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
Command meaning:
--zone #作用域 --add-port=3306/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效
Restart the firewall
systemctl restart firewalld.service
2. iptables develops port 3306
/sbin/iptables -I INPUT -p tcp -dport 3306 -j ACCEPT /etc/rc.d/init.d/iptables save
Related video tutorial recommendations: linux video tutorial
The above is the detailed content of centos cannot connect to mysql remotely. For more information, please follow other related articles on the PHP Chinese website!