这个问题源于数据库服务器中MySQL数据库的user表中缺乏必要的权限设置(或者说缺少相应的用户配置)。下面将详细记录我遇到问题的过程及采取的解决方法。

在搭建完LNMP环境后,我尝试使用Navicat进行连接,但遇到了连接错误。

遇到这个问题后,我首先直接在MySQL服务器所在的机器上尝试进行连接操作。

遇到 MySQL 连接错误 1130,表示主机不被允许连接到 MySQL 服务器。这通常是由于 MySQL 用户权限设置问题导致的。要解决这个问题,你可以按照以下

步骤操作:

  1. 连接到MySQL服务器:

mysql -u root -p
  1. 查看当前所有数据库:

SHOW DATABASES;
  1. 选择mysql数据库:

USE mysql;
  1. 列出mysql数据库中的所有表:

SHOW TABLES;
  1. 查看user表中的Host, User, 和Password字段:

SELECT Host, User, Password FROM user;
  1. 修改user表中的Host字段,为root用户设置通配符%

UPDATE user SET Host='%' WHERE User='root';
  1. 刷新权限,使更改生效:

FLUSH PRIVILEGES;

注意: 在执行SQL语句时,确保每条语句的末尾都有分号(;)。这表示语句的结束。

下面是图示说明


当遇到此问题时,请首先连接到MySQL所在的服务器,然后进行相应的处理。

1. 连接服务器: mysql -u root -p

2.  查看当前所有数据库:show databases;

3.  进入mysql数据库:use mysql;

4. 查看mysql数据库中所有的表:show tables;

5.查看user表中的数据:select Host, User,Password from user;

6.修改user表中的Host:update user set Host='%' where User='root';

7. 最后刷新一下:flush privileges;

8.重新在Navicate中测试一下: