MySQL 密码相关

登录用户

   当MySQL客户端进行用户登陆之后,可以使用以下命令显示所登录的用户

mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

   如果直接输入mysql命令而不指定用户名,则是以游客账户ODBC@进行登录

设置密码

   初始的管理员root是没有密码的,我们可以使用以下命令为它设置密码,注意这个是在CMD环境下而不是登录到MySQL客户端之后才做的,语法格式为mysqladmin -uroot -p旧密码 password新密码

mysqladmin -uroot password "123"

忘记密码

   MySQLdata文件夹下默认会生成一个mysql数据库,其中有user表就是做登录授权验证的。

   这使得MySQL必须先经过授权登录后才能进行一系列的操作,但是我们也可以通过一些技术手段绕过这个授权。

   image-20200828121337805

   切记要使用管理员身份打开CMD

   1.关闭需要授权登录的MySQL服务进程

net Stop MySQL

   2.开启MySQL免授权登录的服务进程

mysqld --skip-grant-tables

   3.开启免授权登录的服务进程后可以再开启一个新的CMD命令终端,直接使用root用户进行登录而不用输入密码

mysql -uroot

   4.在MySQL登录状态下修改密码(使用password()函数进行加密,使得密码存储是以密文存储)

update mysql.user set authentication_string=password('yunya') where user = 'root' and host="localhost";

   如果上述命令失效或抛出异常,可使用以下命令(我这里的环境是5.7版本,5.7以下的版本可尝试使用以下命令)

update mysql.user set password=password('yunya') where user = 'root' and host="localhost" and host="localhost";

   5.立即刷新到磁盘

flush privileges;

   6.退出

exit

   7.关闭免授权的服务进程,重新启动需要授权登录的服务进程

tskill mysqld
net start MySQL  # 这里就是重新启动需要授权登录的服务进程

   8.效果验证,登录成功

mysql -uroot -pyunya
原文地址:https://www.cnblogs.com/Yunya-Cnblogs/p/13576769.html