在mysql8.0中,之前我们使用在mysql5.7版本中修改root或者普通用户远程登录权限的方法已经有所改变。

mysql5.7: alter user 'root'@'%' identified by 'XXXX';  这句话已经无法在使用。

在mysql8.0中,首先我们要查看要修改用户的权限:

select user,host from mysql.user;

如果我们看到是localhost 这里直接修改用户登录权限。

以root为例;

直接修改:

alter user user() identified by 'newpassword';

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

ALTER USER 'root'@'%' IDENTIFIED BY 'newpassword' PASSWORD EXPIRE NEVER;

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

最后查看发现已经修改成功。

 

my.cnf

[mysqld]
basedir = /usr/local/mysql
datadir=/data/mysqldata/data
socket = /usr/local/mysql/mysql.sock
character-set-server=utf8
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
socket = /usr/local/mysql/mysql.sock
default-character-set=utf8