跳到主要内容

[toc]

mysql设置密码及忘记密码如何解决

mysql5.6

方法一 mysqladmin

修改指定用户密码

mysqladmin -u用户名 -p旧密码 password 新密码

示例:使用mysqladmin命令给root设置密码

mysql5.7和mysql8中在命令行使用命令mysqladmin会有警告信息,mysql5.6没有

$ mysqladmin -uroot -p password
Enter password:
New password:
Confirm new password:
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

方法二 set password

修改指定用户密码

set password for 用户名@localhost = password('新密码');

默认修改root密码

set password='新密码'	或		set password=password('新密码');

方法三 update更新user表

⚠️mysql5.6中user表中密码的字段是password

⚠️mysql5.7和8中user表中密码的字段是authentication_string

⚠️mysql8中user表中密码的字段authentication_string后边直接跟字符串即可,不能写password

mysql5.6

update mysql.user set password=password('新密码') where user='root' and host='localhost'; 

mysql5.7

update mysql.user set authentication_string=password('新密码') where user='root' and host='localhost'; 

mysql8

update mysql.user set authentication_string='新密码' where user='root' and host='localhost'; 

mysql5.7

方法一 mysqladmin

修改指定用户密码

mysqladmin -u用户名 -p旧密码 password 新密码

示例:使用mysqladmin命令给root设置密码

mysql5.7和mysql8中在命令行使用命令mysqladmin会有警告信息,mysql5.6没有

$ mysqladmin -uroot -p password
Enter password:
New password:
Confirm new password:
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

方法二 set password

修改指定用户密码

set password for 用户名@localhost = password('新密码');

默认修改root密码

set password='新密码'	或		set password=password('新密码');

方法三 update更新user表

⚠️mysql5.6中user表中密码的字段是password

⚠️mysql5.7和8中user表中密码的字段是authentication_string

⚠️mysql8中user表中密码的字段authentication_string后边直接跟字符串即可,不能写password

mysql5.6

update mysql.user set password=password('新密码') where user='root' and host='localhost'; 

mysql5.7

update mysql.user set authentication_string=password('新密码') where user='root' and host='localhost'; 

mysql8

update mysql.user set authentication_string='新密码' where user='root' and host='localhost'; 

mysql8.0

方法一 mysqladmin

修改指定用户密码

mysqladmin -u用户名 -p旧密码 password 新密码

示例:使用mysqladmin命令给root设置密码

mysql5.7和mysql8中在命令行使用命令mysqladmin会有警告信息,mysql5.6没有

$ mysqladmin -uroot -p password
Enter password:
New password:
Confirm new password:
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

方法二 set password

⚠️mysql8中以下两种方式不可用

set password=password('新密码');

set password for root@localhost = password('新密码');

只能用如下方法

set password='新密码'

方法三 update更新user表

⚠️mysql5.6中user表中密码的字段是password

⚠️mysql5.7和8中user表中密码的字段是authentication_string

⚠️mysql8中user表中密码的字段authentication_string后边直接跟字符串即可,不能写password

mysql5.6

update mysql.user set password=password('新密码') where user='root' and host='localhost'; 

mysql5.7

update mysql.user set authentication_string=password('新密码') where user='root' and host='localhost'; 

mysql8

update mysql.user set authentication_string='新密码' where user='root' and host='localhost'; 

mysql忘记密码

第一步、停止mysql数据库

第二步、编辑mysql配置文件my.cnf,在[mysqld]下加参数skip-grant-tables

第三步、启动mysql数据库,进入数据库修改密码,修改完成之后把配置文件中的参数skip-grant-tables注释或者删除