mysql8.0以上版本授权远程登录

问题:安装完8.0.28版本的mysql之后,为了可以使用navicat可视化工具远程连接数据库,进行授权远程登录,执行授权语句时失败:

如果你想允许用户root从ip为192.168.1.123的主机连接到mysql服务器,并使用root作为密码   
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.123'IDENTIFIED BY 'password' 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 'linyi'' at line 1

原因:因为 MySQL8.0 以上将创建账户和赋予权限分开了,需要用两个语句创建账号,赋予远程权限;

具体操作步骤

1:登陆数据库

mysql -u root -p

2:使用mysql库

use mysql

3:创建一个用户用于远程登录(test是用户名,test_pwd是密码,可以替换为自己的)

 create user 'test'@'%' identified by 'test_pwd';

4:授权远程登录(注意test改为上面创建的用户名,ip可以换为自己的ip)

#仅授权某一个ip访问
grant all privileges on *.* to 'test'@'183.129.241.197' with grant option;
# 允许所有 ip 远程访问(危险!)
grant all privileges on *.* to 'test'@'%' with grant option;

5:刷新

FLUSH PRIVILEGES;

(注意:如果是新的服务器,请开放3306端口,才能是远程工具正常连接:firewall-cmd --zone=public --add-port=3306/tcp --permanent)

猜你喜欢

转载自blog.csdn.net/weixin_42303757/article/details/124008671