Home > Database > Mysql Tutorial > The reason why mysql database cannot be connected remotely under Centos7 and the detailed solution

The reason why mysql database cannot be connected remotely under Centos7 and the detailed solution

黄舟
Release: 2017-09-21 10:47:58
Original
2078 people have browsed it

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;
Copy after login

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
Copy after login

Command meaning:


--zone #作用域


--add-port=3306/tcp #添加端口,格式为:端口/通讯协议


--permanent  #永久生效,没有此参数重启后失效
Copy after login

Restart the firewall


systemctl restart firewalld.service
Copy after login

2.iptables development 3306 port


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

/etc/rc.d/init.d/iptables save
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template