目录
mysql密码的初始化,修改与重置
郑重说明:
文章guixiang
原创,全部实操过,不会的留言问。
初始化密码(第一次使用前要初始化密码)
mysql
1.进入mysql命令行
mysql -uroot
2.执行
ALTER USER'root'@'localhost'IDENTIFIED BY 'your_password';
3.提交
flush privileges;
4.退出
quit;
查看密码(已登录状态)
mysql
mysql> select * from mysql.user;
#找到这个:
| 127.0.0.1 | root | *FD408300A2CBA95D1FCBB97C4E21D38D4B7E446D |
| % | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
#进入网站:https://md5.cc将md5加密的密文解密
#列如 *FD408300A2CBA95D1FCBB97C4E21D38D4B7E446D 为密文
修改密码(已知原密码)
mysql
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]
诺之前:
mysql2.执行use mysql; 3.执行update user set host = '%' where user = 'root'; 4.执行FLUSH PRIVILEGES;
登录为
mysql[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对应的服务,然后将其停止
诺mysql装在Linux
mysql
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