新版本mysql的密码策略和语法发生了改变,按网上一些比较老的文章来改的话一直出错
比如修改密码
vim /etv/mysql/my.cnf
在[mysqld]下加入一行代码>>>skip-grant-table>>>意思是跳过密码验证
然后 systemctl restart mysqld>>> 重启mysql
随便记一下 systemctl start mysqld >>>启动mysql
随便记一下
mysql -u root -p >>>用户名:root登入mysql(回车后要输入密码,如果密码为空直接再次回车)
以下是在mysql中输入的代码
mysql> flush privileges;
mysql> alter user 'root'@'localhost'IDENTIFIED BY 'MyNewPass@123';>>>>>>修改root@localhost的密码为MyNewPass@123
新的密码规则是:字母要有大小写+特殊符号+数字(这个密码可以忽略不设置,因为新出了另一种,看下面)
mysql> alter user 'root'@'localhost'IDENTIFIED WITH mysql_native_password BY'MyPass@123';>>>>>>>这个密码比较有用,如果用mysql工具连接数据库,其中填的密码就是这个
注意:更改了mysql_native_passwd密码,等同更改用户原始密码。MYSQL 8.0 内以mysql-native_passwd为主,从Shell界面登录需要注意了。
还可以用Root用户登录新增加用户,进行授权再远程连接。
mysql> CREATE USER 'super'@'%'IDENTIFIED BY 'MyPass@123';
mysql> GRANT ALLON *.* TO 'super'@'%' WITH GRANT OPTION;
mysql> Flush privileges;
mysql> ALTER USER 'super'@'%' IDENTIFIEDWITH mysql_native_password BY 'MyPass@123';