mysql设置对外访问

报错:Host is not allowed to connect to this MySQL server解决方法

先说说这个错误,其实就是我们的MySQL不允许远程登录,所以远程登录失败了,解决方法如下:

在装有MySQL的机器上登录MySQL mysql -u root -p密码

[root@localhost ~]# mysql -u root -p 
Enter password: 

执行use mysql;

mysql > use mysql;


执行update user set host = '%' where user = 'root';这一句执行完可能会报错,不用管它。


执行FLUSH PRIVILEGES;

全部命令

[root@localhost ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 12
Server version: 8.0.11 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

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.

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.06 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> 

经过上面4步,就可以解决这个问题了。
注: 第四步是刷新MySQL的权限相关表,一定不要忘了,我第一次的时候没有执行第四步,结果一直不成功,最后才找到这个原因。

如果以上还不能解决问题,可以尝试

报错:authentication plugin 'caching_sha2_password

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

以上两步骤基本可以解决 mysql对外访问了

原文地址:https://www.cnblogs.com/wesky/p/9108359.html