Mysql8.0给予远程登录权限

问题描述

我无法使用第三方工具或者django登陆我的数据库。然后,我给root赋予权限:

GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘yeqinfang’ 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 ‘. TO ‘root’@’%’ IDENTIFIED BY ‘yeqinfang’ WITH GRANT OPTION’ at line 1

解决办法

我的mysql是8.0版本,不支持上面的语句,因此,我需要创建用户来验证一下:

create user 'yeqinfang'@'%' identified by 'yeqinfang';

这里报错:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
说我密码不安全,那么我就更改一下密码吧!

(1)查看策略

show variables like "%validate%";

在这里插入图片描述
(2)修改全局变量
密码长度至少为6

set global validate_password.length=6

权限设置最低:

set global validate_password.policy=0;

在这里插入图片描述
(3)重新创建用户

create user 'yeqinfang'@'%' identified by 'yeqinfang';

在这里插入图片描述
创建成功。

(4)给新用户权限

GRANT ALL PRIVILEGES ON . TO ‘yeqinfang’@’%’ IDENTIFIED BY ‘yeqinfang’ WITH GRANT OPTION;

还是一样的报错,那就换种方式:

grant all privileges on *.*  to  'yeqinfang'@'%';

成功。
(5)给自己权限

grant all privileges on *.*  to  'root'@'%';

成功。事实表明,是语句错误。
(6)刷新权限

FLUSH PRIVILEGES;

(7)尝试外部连接:
在这里插入图片描述
报错如上:不支持caching_sha2_password验证方式

(9)换个密码验证方式:
例如:
ALTER USER ‘username’@’%’ IDENTIFIED WITH mysql_native_password BY ‘password’;
修改如下:

ALTER USER 'yeqinfang'@'%' IDENTIFIED WITH mysql_native_password BY 'yeqinfang';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yeqinfang';
FLUSH PRIVILEGES;

(10)尝试连接:
在这里插入图片描述如上,连接成功。root用户或其他用户都可以。

猜你喜欢

转载自blog.csdn.net/weixin_43431593/article/details/106872836