mysql密码的初始化,修改与重置

郑重说明:

文章guixiang原创,全部实操过,不会的留言问。

初始化密码(第一次使用前要初始化密码)

1.进入mysql命令行

mysql -uroot

2.执行

ALTER USER'root'@'localhost'IDENTIFIED BY 'your_password';

3.提交

flush privileges;

4.退出

quit;

查看密码(已登录状态)

mysql> select * from mysql.user;
#找到这个:
| 127.0.0.1 | root | *FD408300A2CBA95D1FCBB97C4E21D38D4B7E446D | 
| %         | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
#进入网站:https://md5.cc将md5加密的密文解密
#列如  *FD408300A2CBA95D1FCBB97C4E21D38D4B7E446D   为密文

修改密码(已知原密码)

1.进入mysql命令行

mysql -uroot -p

2.执行

set password for root@localhost = password('your_new_password');
#此方法请确认有root@localhost用户
#用户查看
SELECT user, host FROM mysql.user;


#如只是更新当前用户(这个方法肯定行)
SET PASSWORD = PASSWORD('your_new_password');

3.退出

quit;

[!CAUTION]

诺之前:

2.执行use mysql;
3.执行update user set host = '%' where user = 'root';
4.执行FLUSH PRIVILEGES;

登录为

[root@bogon ~]# mysql -uroot -h127.0.0.1

忘记密码(密码找回)

诺mysql装在Windows

1.打开cmd,停止mysql

net stop mysql

2.进入mysqld(CMD命令行窗口要转到mysql\bin目录)

mysqld --skip-grant-tables

3.新开CMD,进入mysql命令行

mysql -uroot

4.执行

use mysql;

5.修改密码

set password for root@localhost = password('your_password');
或者
SET PASSWORD = PASSWORD('your_new_password');

6.刷新权限表

flush privileges;

7.退出

quit;

[!CAUTION]

上面的停止mysql第二种方式

在任务管理器中找到MySQL对应的服务,然后将其停止img

诺mysql装在Linux

1.停止mysql

service mysqld stop
#也有可能是像我这样(因为之前特地写了一个启动文件,这个我放到后面)
[root@bogon ~]# systemctl stop mysqld

2.修改

vim /etc/my.cnf

在mysqld下添加

[mysqld]
skip-grant-tables

3.重启

service mysqld start
#也有可能是像我这样(因为之前特地写了一个启动文件,这个我放到后面)
[root@bogon ~]# systemctl start mysqld

4.进入mysql

mysql -uroot

5.执行

use mysql;

6.修改密码
use mysql;

UPDATE user SET authentication_string=PASSWORD("your_new_password") WHERE User="root";
#mysql5.7以前的版本请使用(极为重要) 
update user set password=password("your_new_password") where user="root";
#查看版本:
mysql --version  

7.刷新权限表

flush privileges;

8.退出

quit;

9.停止mysql

service mysqld stop
#也有可能是像我这样(因为之前特地写了一个启动文件,这个我放到后面)
[root@bogon ~]# systemctl stop mysqld

10.删除( 注意,是删除skip-grant-tables 这一段)

vim /etc/my.cnf

[mysqld]
skip-grant-tables

11.重启mysql

service mysqld start
#也有可能是像我这样(因为之前特地写了一个启动文件,这个我放到后面)
[root@bogon ~]# systemctl restart mysqld

[!CAUTION]

第6步,不要两个都试,因为新建的列会扰乱密码导致登录不上

结尾systemctl为什么可以管理mysql附件

vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000