在安装的Mysql 8+版本后远程连接不上

注意:每次修改后,涉及到权限的一定要刷新权限。

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.04 sec)

mysql>

会报一个错误:

1130 - Host '10.45.12.79' is not allowed to connect to this MySQL server

一、查看Mysql是否开启可以远程访问的权限

1.登录mysql机器

mysql -u root -p

2.切换到Mysql数据库

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>

3.查看是否运行远程访问

可以看到第一行root 用户的host为localhost,要远程访问,需要将它改成%

mysql> select host,user,plugin from user;

+-----------+------------------+-----------------------+

| host | user | plugin |

+-----------+------------------+-----------------------+

| localhost | mysql.infoschema | caching_sha2_password |

| localhost | mysql.session | caching_sha2_password |

| localhost | mysql.sys | caching_sha2_password |

| localhost | root | caching_sha2_password |

+-----------+------------------+-----------------------+

4 rows in set (0.00 sec)

mysql>

4.将host改为%

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

Query OK, 1 row affected (0.07 sec)

Rows matched: 1 Changed: 1 Warnings: 0

mysql> select host,user,plugin from user;

+-----------+------------------+-----------------------+

| host | user | plugin |

+-----------+------------------+-----------------------+

| % | root | caching_sha2_password |

| localhost | mysql.infoschema | caching_sha2_password |

| localhost | mysql.session | caching_sha2_password |

| localhost | mysql.sys | caching_sha2_password |

+-----------+------------------+-----------------------+

4 rows in set (0.00 sec)

mysql>

5.刷新权限

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.10 sec)

mysql>

现在有权限访问了,但是校验方式又有了问题

2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found

1

二、更改连接的密码校验方式

caching_sha2_password加密方式在远程访问时候不支持。

需要改成:mysql_native_password

1.更改连接方式

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

Query OK, 0 rows affected (0.09 sec)

mysql> select host,user,plugin from user;

+-----------+------------------+-----------------------+

| host | user | plugin |

+-----------+------------------+-----------------------+

| % | root | mysql_native_password |

| localhost | mysql.infoschema | caching_sha2_password |

| localhost | mysql.session | caching_sha2_password |

| localhost | mysql.sys | caching_sha2_password |

+-----------+------------------+-----------------------+

4 rows in set (0.00 sec)

mysql>

2.刷新权限

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.04 sec)

mysql>

3.远程连接

OK了

三、创建用户并授权

1.创建用户

Mysql 8 在创建用户上面,有了很大的不同

Mysql 8 之前的创建方式在这里会报错

mysql> GRANT ALL ON *.* TO `wangwei`@`127.0.0.1` IDENTIFIED BY 'passowrd' WITH GRANT OPTION;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'passowrd' WITH GRANT OPTION' at line 1

1

2

Mysql 8正确的创建方式

mysql> CREATE USER `developer`@`%` IDENTIFIED BY '123456';

Query OK, 0 rows affected (0.08 sec)

mysql> select host,user,plugin from user;

+-----------+------------------+-----------------------+

| host | user | plugin |

+-----------+------------------+-----------------------+

| % | developer | caching_sha2_password |

| % | root | mysql_native_password |

| localhost | mysql.infoschema | caching_sha2_password |

| localhost | mysql.session | caching_sha2_password |

| localhost | mysql.sys | caching_sha2_password |

+-----------+------------------+-----------------------+

5 rows in set (0.00 sec)

mysql>

2.授权

mysql> GRANT ALL ON *.* TO `developer`@`%` WITH GRANT OPTION;

Query OK, 0 rows affected (0.09 sec)

mysql> select host,user,plugin from user;

+-----------+------------------+-----------------------+

| host | user | plugin |

+-----------+------------------+-----------------------+

| % | developer | caching_sha2_password |

| % | root | mysql_native_password |

| localhost | mysql.infoschema | caching_sha2_password |

| localhost | mysql.session | caching_sha2_password |

| localhost | mysql.sys | caching_sha2_password |

+-----------+------------------+-----------------------+

5 rows in set (0.00 sec)

mysql>

发现用户developer的加密连接方式plugin不对,修改一下

最后一定要刷新权限

mysql> ALTER USER 'developer'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

Query OK, 0 rows affected (0.08 sec)

mysql> select host,user,plugin from user;

+-----------+------------------+-----------------------+

| host | user | plugin |

+-----------+------------------+-----------------------+

| % | developer | mysql_native_password |

| % | root | mysql_native_password |

| localhost | mysql.infoschema | caching_sha2_password |

| localhost | mysql.session | caching_sha2_password |

| localhost | mysql.sys | caching_sha2_password |

+-----------+------------------+-----------------------+

5 rows in set (0.00 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.04 sec)

mysql>

3.连接

好了,可以愉快的开发了!


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: mysql