在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