参考地址:https://www.cnblogs.com/yang82/p/7794712.html
mysql中修改用户密码的方式:
最简单的方法就是借助第三方工具Navicat for MySQL来修改,方法如下:
1、登录mysql到指定库,如:登录到test库(还未实践)
2、然后点击上方“用户”按钮。
3、选择要更改的用户名,然后点击上方的“编辑用户”按钮。
4、出现如图界面,输入新密码,并确认新密码,点击“保存”按钮即可。
第二种方式:
方法1: 用SET PASSWORD命令
首先登录MySQL。
mysql -uroot -p
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');
方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123
方法3:用UPDATE直接编辑user表(现在在我电脑的mysql中还没有成功实现,因为我的数据库mysql中的user表没有password字段)
首先登录MySQL。
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;
方法4:在忘记root密码的时候,可以这样
以windows为例:
1. 关闭正在运行的MySQL服务。 (net stop mysql)
2. 打开DOS窗口,转到mysql\bin目录(也可在环境变量PATH中设置有mysql\bin目录)
3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
5. 输入mysql回车,如果成功,将出现MySQL提示符 >。
6. 连接权限数据库: use mysql; 。
7. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号)
8. 刷新权限(必须步骤):flush privileges; (因为我的数据库不能使用update来修改密码,而且因为使用了mysqld --skip-grant-tables,所有也不能使用第一或第二种来进行)
9. 退出 quit。
10. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。
下面我将对第三种方式进行演示
前提:我已经在系统变量PATH中添加了路径:
1.net stop mysql(关闭mysql服务)
2.mysqld --skip-grant-tables(启动MySQL服务的时候跳过权限表认证)【注意输入此命令之后命令行就无法操作了,此时可以再打开一个新的命令行。注意:在输入此命令之前先在任务管理器中结束mysqld.exe进程,确保mysql服务器端已结束运行。】
3.重新以管理员身份打开另外一个cmd
4.然后输入mysql
5.输入flush privileges(刷新权限)
6.按第一个方法来修改密码 set password for root@localhost = password('123456')
7.退出后再登录 mysql -uroot -p123456,可成功登录
8.
测试不带密码登录mysql,发现还是能够登陆上,但显示数据库时只能看到两个数据库了,说明重启之后跳过密码验证已经被取消了。
13
我这地方重启数据库之后之所以不带密码任然能够登录是因为我的数据库里存在设无须口令的账户。