MySQL设置远程登录(为root用户设置远程登陆权限)

您所在的位置:网站首页 如何打开登录权限 MySQL设置远程登录(为root用户设置远程登陆权限)

MySQL设置远程登录(为root用户设置远程登陆权限)

2024-07-12 19:20| 来源: 网络整理| 查看: 265

MySQL8以前的版本

如果是8以前的版本可以使用

-- GRANT privileges ON database_name.table_name TO 'username'@'hostname' IDENTIFIED BY 'password'; -- privileges表示授予的权限,database_name和table_name表示要授权的数据库和表名,username和hostname表示要授权的用户和主机名,password表示用户的密码 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; -- 刷新权限 FLUSH PRIVILEGES;

重启MySQL服务,此时应当可以连接成功。

MySQL8及以上版本 问题

在MySQL8之后,使用 GRANT 命令的使用不会默认创建新账户,所以如果你执行上面的语句显示

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 '123456' WITH GRANT OPTION' at line 1

恭喜你,你应当使用的是MySQL8的版本。

解决

既然问题是使用GRANT时不会创建新账户,那我们先新建一下就好了。

-- 创建'root'@'%'账户 CREATE USER 'root'@'%' IDENTIFIED BY '123456'; -- 给'root'@'%'账户设置权限 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; -- 刷新权限 flush privileges;

此时,应当有两个root账户

use mysql; select host, user, authentication_string, plugin from user;

应该可以看到有两个root账户,一个是'root'@'localhost'和'root'@'%'。

看一下两个账号的加密插件是不是caching_sha2_password,至于为什么要看,具体原因往下看。

这次应该可以正常连接了。

如果连接的时候显示plugin caching_sha2_password could not be loaded,那我们就需要改一下加密插件了。

方法一:

这种方法应当在创建'root'@'%'之前设置,不然就使用第二种更加方便。

可以理解为,

方法一是为之后所有新用户指定加密插件,

方法二是修改指定一个用户的加密插件。

修改my.ini文件,在[mysqld]下面新增

default_authentication_plugin=mysql_native_password

方法二:

alter user 'root'@'%' identified with mysql_native_password by '123456';


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3