首页 > 技术文章 > Linux mysql 修改密码 三种方式(转载)

Jameshi 2020-11-16 13:26 原文

注明:本文为转载,原文地址:https://www.cnblogs.com/chuckjam/archive/2018/08/10/9456255.html

前言

有时我们会忘记Mysql的密码,或者想改一个密码,以下将对这两种情况修改密码的三种解决方法做个总结

本文都以用户为 root 为例,5.7特别注意。

 

一、拥有原来的myql的root的密码

方法一: 

在mysql系统外,使用mysqladmin

1 mysqladmin -u root -p password "test123"
2 Enter password: 【输入原来的密码】

 

方法二:
通过登录mysql系统

1 mysql -uroot -p
2 Enter password: 【输入原来的密码】
3 mysql>use mysql;
4 mysql> update user set password=passworD("test") where user='root';
5 mysql> exit; 

 

注意:如果Mysql的版本是5.7及以上的话update语句更换如下:

1 mysql> update user set authentication_string=passworD("test") where user='root';

 

二、忘记原来的myql的root的密码

方法三:

首先拿到操作系统的root权限,然后kill掉Mysql服务或者手动stop掉,这里我推荐使用手动stop;

1 service mysql stop

然后执行

1 mysqld_safe --skip-grant-tables &

&,表示在后台运行,不再后台运行的话,就再打开一个终端吧。

接着登陆MySQL修改密码(有问题看下面提示)

1 mysql
2 mysql> use mysql;
3 mysql> UPDATE user SET password=password("test123") WHERE user='root';   
4 mysql> exit; 

注意:如果Mysql的版本是5.7及以上的话update语句如下:

1 mysql> update user set authentication_string=passworD("test") where user='root';

再提示:如果出现下面问题,先看有没有这个文件  /tmp/mysql.sock 没有的话这里暂时不处理,有的话就往下看。

Can't connect to local MySQL server through socket '/tmp/mysql.sock'

可以直接  

vim /etc/my.cnf
修改或增加下面内容

# 取消密码验证
skip-grant-tables

然后重启mysql

使用直接  “mysql”  ,啥参数也不带,就可以进去。进去后执行上面的update 语句。

最后把密码验证  skip-grant-tables  注释掉。

 

推荐阅读