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

问题描述:

此篇文章针对的是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';

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

  • 8
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值