Mysql8.0版本修改密码(Linux)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

问题描述

此篇文章针对的是Linux服务器上mysql8.0版本的修改密码方式

因为长时间没动到linux服务器的mysql导致自己当初里面设置的密码是啥。

上网找了很多资料去修改重置了一下mysql的密码记录一下顺便让遇到相同问题情况的朋友们少走一些坑。


解决步骤

一、修改登录设置编辑my.cnf文件跳过登录

1、进入文件编辑 

vim /etc/my.cnf

 2、在文件中[mysqld]下添加上这一段代码

skip-grant-tables

 3、保存退出重启mysql服务器记得重启不然文件编辑后不生效

service mysqld restart

 

4、重启完毕后 登录mysql此时是不需要密码的提示需要输入密码直接回车就能进入

mysql -u root -p

 二、修改密码

 (1)执行以下语句1、use mysql;   2、select user,host from user where user='root';

这里主要查看允许访问root的host有哪些%表示所有

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql>
mysql> select user,host from user where user='root';
+------+------+
| user | host |
+------+------+
| root | %    |
+------+------+
1 row in set (0.00 sec)

 (2)更改密码

执行以下代码'xxxxxx'是你要输入的密码。

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxxx';
flush privileges;

这里要注意如果你上面(1)中查询出来的root账户host是localhost则需将'root'@'%'改为 'root'@'localhost'。否则会报错 ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%'

 (3)依旧报错ERROR 1396 (HY000)

如果确认无误上面的1中查出的user和host和2中的脚本是对应的但是执行后依旧报

ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%'

ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'

解决方法先将密码置空再修改密码

直接按下面的顺序执行脚本就可解决

mysql> update user set authentication_string='' where user='root';

mysql> flush privileges;

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxxx';

这一块很离谱不知道为什么需要先将密码置空在网上找了很多资料后发现有网友是同样情况解决的希望碰到相同情况的朋友们这篇文章能帮到你们。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: mysqllinux