Mysql8忘记密码/重置密码
UBUNTU下Mysql8忘记密码/重置密码步骤如下:
先说下大概步骤:修改配置文件,使得用空密码可以进入mysql。然后置当前root用户为空密码。再次修改配置文件,不能使用空密码。然后再次进入mysql,修改成你需要的密码。
下面是详细步骤:
一、修改配置文件: /etc/my.cnf ,有些人说在这个my.cnf文件;我的在 /etc/mysql/mysql.conf.d这个文件夹下。
你输入: sudo vim
/etc/mysql/mysql.conf.d/mysqld.cnf回车。
这下面的这一节添加 skip-grant-tables 表示免密码登录。
[mysqld]
#
# * Basic Settings
#
user = mysql
# pid-file = /var/run/mysqld/mysqld.pid
# socket = /var/run/mysqld/mysqld.sock
# port = 3306
# datadir = /var/lib/mysql
skip-grant-tables
保存退出。
输入:sudo service mysql restart
重启mysqlf服务。
二、接下来将密码置空
输入:mysql -u root -p
#提示输入密码时直接敲回车。
输入:use mysql;
选择数据库mysql;
输入:update user set authentication_string = '' where user = 'root';
#将密码置空
输入:flush privileges;
# 刷新
输入exit;
退出
sudo service mysql restart
重启mysqlf服务。
三、去掉刚刚添加 skip-grant-tables 这行,设必须有密码登录
输入: sudo vim
/etc/mysql/mysql.conf.d/mysqld.cnf回车。
去掉刚刚添加 skip-grant-tables 这行,保存,退出。
输入:sudo mysql -u root -p
#提示输入密码时直接敲回车,刚刚已经将密码置空了。
输入ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
#修改成新密码,这一步可能会提示你密码复杂度不够。默认是8位,包含特殊字符,字母,一个数字。(注意:如果要修改密码复杂度,可以参考
https://blog.51cto.com/u_16213395/7328732 这个链接。
我修改成这样
输入:ALTER USER 'root'@'localhost' IDENTIFIED BY 'W@hongq1'; 回车,通过。
输入:flush privileges;
//刷新生效
最好再次重启mysql服务
sudo service mysql restart 回车
接下来你就用sudo mysqld -uroot -p回车,输入正确的密码就可以了。
【全文完】