在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