阿里服务器上的MySQL连不上,或者Linux上的MySQL连不上,报1130 - Host XXX is not allowed to connect to this MySQL server
首先连上阿里服务器上的MySQL
用命令mysql -uroot -p之后输入MySQL密码
mysql -uroot -p
[root@wangazure ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.24 Source distribution
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
用语句查询select host from user where user=‘root’;可能会查不到,但是不要慌
mysql> use mysql
Database changed
mysql> select host from user where user='root';
将Host设置为通配符%
Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。 user=root Host=localhost,表示只能通过本机客户端去访问。而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。
注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置;
————————————————
版权声明:本文为CSDN博主「B-W」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/h985161183/article/details/82218710
mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select host,user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| % | root |
| 127.0.0.1 | sms |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | sms |
+-----------+------------------+
6 rows in set (0.01 sec)
之后看下就有host了
mysql> select host from user where user='root';
+------+
| host |
+------+
| % |
+------+
1 row in set (0.00 sec)
#Host修改完成后记得执行flush privileges使配置立即生效
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
然后重连就好了