原因:说明所连接的用户帐号没有远程连接的权限,只能在本机(localhost)登录。

1. 检查防火墙端口

防火墙可关闭直接关闭防火墙

systemctl stop firewalld

不能关闭防火墙开放 Mysql 数据库 3306 端口(如果端口被修改开放相应端口)

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload		#重载防火墙配置
firewall-cmd --list-all		#查看开放的端口

在这里插入图片描述

2. 改表法

登录数据库,执行下列命令

update user set Host='%' where User='root';
flush privileges;
  • 将 mysql 数据库里的 user 表里的 host 项,从 “localhost” 改成 “%”

在这里插入图片描述

3. 授权法

授权 myuser 使用 mypassword 从任何主机连接到 mysql 服务器

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
flush privileges;

授权用户 myuser 从 IP 为 192.168.1.3 的主机连接到 mysql 服务器,并使用 mypassword 作为密码

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
flush privileges;

Logo

快速构建 Web 应用程序

更多推荐