Home >Database >Mysql Tutorial >The reason why mysql database cannot be connected remotely under Centos7 and the detailed solution
MySQL is an open source SQL database management system developed by Oracle. The following article mainly introduces to you the reasons and solutions for the inability to remotely connect to the mysql database under Centos7. The article introduces it in detail through sample code. You need to Friends can refer to it, let’s take a look below.
Preface
I recently encountered a problem at work. I found that I couldn’t connect to mysql remotely under the Centos7 system. By searching for the relevant Information, it was finally solved. The following method was the method I tried after encountering the problem of being unable to connect to the Mysql database remotely, and finally solved the problem. So I’ll summarize and share it for the reference of friends who also encounter this problem. I won’t say much below, let’s take a look at the detailed introduction.
There are two reasons
The database is not authorized
The server firewall does not open port 3306
1. The database is not authorized
There is no authorization for the mysql database, just use one command.
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 firewalls: FirewallD and iptables Firewall
centos7 uses FirewallD firewall.
FirewallD is a front-end controller for iptables that implements 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 the rule set, 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 development 3306 port
/sbin/iptables -I INPUT -p tcp -dport 3306 -j ACCEPT /etc/rc.d/init.d/iptables save
Summary
The above is the detailed content of The reason why mysql database cannot be connected remotely under Centos7 and the detailed solution. For more information, please follow other related articles on the PHP Chinese website!