mysql 远程连接失败

一、mysql  禁止 IP 远程连接

mysql 库 user表中 host 为 localhost 修改为 % 允许所有 IP 连接 或者 添加一条数据 host 为允许连接的 IP 

mysql    -uroot  -proot

二、授权某个用户可以远程连接

以root为例:

grant all privileges on *.* to root@"%" identified by "password" with grant option;

命令解释 
*.*:第一个*代表数据库名;第二个*代表表名。这里的意思是所有数据库里的所有表都授权给用户; 
root:授予root账号; 
%:表示授权的用户IP,这里代表任意的IP地址都能访问MySQL; 
password:分配账号对应的密码; 

然后   flush privileges;  刷新权限信息

三、修改/etc/mysql/my.conf

找到bind-address = 127.0.0.1这一行
改为bind-address = 0.0.0.0  或者注释掉这一行

四、防火墙,比如 lnmp.org 集成环境,为了安全默认是禁止远程连接 mysql 的;

解决办法链接:https://www.vpser.net/security/linux-iptables.html

如果是 CentOS 7 ,默认安装了firewalld 需要先关闭并禁用

systemctl stop firewalld
systemctl mask firewalld

1、检查是否安装了  iptables

  service   iptables  status

2、安装  iptables 防火墙  centos7 需要安装 iptables_service

yum  install  iptables-services

3、清除已有 iptables 规则

iptables  -F

iptables -X

iptables -Z

4、开放指定的端口

-A  和  -I 参数分别为添加到规则末尾和规则最前面

允许本地回环接口(即本机运行本机)
iptables  -A  INPUT  -i  lo  -j  ACCEPT

允许已建立的或相关连的通行

iptables  -A  INPUT  -m  state  --state  ESTABLISHED,RELATED  -j  ACCEPT

允许所有本机向外的访问

iptables  -A  OUTPUT  -j  ACCEPT

允许访问 22 端口,其它端口也类似

iptables  -A  INPUT  -p  tcp  --dport  22  -j  ACCEPT

允许访问80端口,其它端口也类似

iptables  -A   INPUT  -p  tcp  --dport  80  -j  ACCEPT

允许ping

iptable  -A  INPUT  -p  icmp  -m  icmp   --icmp-type 8 -j  ACCEPT

猜你喜欢

转载自blog.csdn.net/qq_35703476/article/details/84321757