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"
忘记密码
MySQL
的data
文件夹下默认会生成一个mysql
数据库,其中有user
表就是做登录授权验证的。
这使得MySQL
必须先经过授权登录后才能进行一系列的操作,但是我们也可以通过一些技术手段绕过这个授权。
切记要使用管理员身份打开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