解决MySQL数据库无法远程连接问题
Nov122021
第一、允许MySQL数据库被远程连接
编辑/etc/mysql/mysql.conf.d/mysqld.cnf 配置文件,注释bind-address = 127.0.0.1这一行,然后重启MySQL服务。
nano /etc/mysql/mysql.conf.d/mysqld.cnf
注释掉以下一行,使用#号注释
# bind-address = 127.0.0.1
重启服务
service mysql restart
第二、授权允许远程连接的用户
以授权root用户为例
连接mysql
mysql -uroot -p
Enter password:
mysql> grant all privileges on *.* to root@"%" identified by "password" with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql > quit
# service mysql restart
命令解释
.:第一个代表数据库名;第二个代表表名。这里的意思是所有数据库里的所有表都授权给用户;
root:授予root账号;
%:表示授权的用户IP,这里代表任意的IP地址都能访问MySQL;
password:分配账号对应的密码;
flush privileges:刷新权限信息。
————————————————
第三:开放防火墙3306端口.
先检查你的防火墙是firewall 还是iptables。centos7默认应该是 firewall ,我直接上 firewall 命令
# firewall-cmd --permanent --add-port=3306/tcp
success
iptables -L -n #可以查看开放端口是否有3306
# firewall-cmd --permanent--remove-port=3306/tcp #如果用完了最好关闭这个端口,这个是关闭命令