连接MySQL报错,is not allowed to connect to this MySQL server
作者:mmseoamin日期:2023-12-11

问题描述:

        本机装的MySQL数据库,本机可以正常连接,其他机器访问报错,is not allowed to connect to this MySQL server,防火墙等其他策略均配置没问题。


 解决方案:

        出现该问题的原因是,MySQL数据库只允许自身所在的本机器连接,不允许远程连接。

1、在MySQL所在服务器上使用命令登录到MySQL数据库中

mysql -u root -p

2、选择mysql数据库,并查询权限

use mysql;
 
select host from user where user='root';

可以看到,执行查询语句后得到的数据结果中 host 的值是 localhost

我们执行update语句修改权限

update user set host = '%' where user ='root';

3、刷新配置

flush privileges;

再次执行查询权限语句

select host from user where user='root';

可以看到,已经修改成功

4、最后再次用其他机器连接MySQL数据库,可以连接成功

DBMS: MySQL (版本 5.7.41)

区分大小写: 普通形式=lower, 分隔形式=lower

驱动程序: MySQL Connector/J (版本 mysql-connector-java-8.0.25 (Revision: 08be9e9b4cba6aa115f9b27b215887af40b159e0),JDBC4.2)

Ping: 29毫秒

SSL: yes



 

 


  
 
  
 
  
 
  
  
    
  
 
  
  
    
  
 
  
  
    
 
    
  
 
  
  
    
    
      maven-default-http-blocker
      external:http:*
      Pseudo repository to mirror external repositories initially using HTTP.
      http://0.0.0.0/
      true
    
  
 
  
  
    
 
    
  
 
  

1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

Sql代码 复制代码

   1. mysql -u root -pvmwaremysql>use mysql; 

   2. mysql>update user set host = '%' where user = 'root'; 

   3. mysql>select host, user from user; 

2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

Sql代码 复制代码

  1. GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH

      GRANT OPTION;  

  2.FLUSH   PRIVILEGES;