方式1:用SET PASSWORD命令
set password for 'root'@‘localhost’ = password("new pass")
方式2:用mysqladmin
mysqladmin -uroot -p旧密码 password 新密码
方式3:用UPDATE直接编辑user表
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;
忘记密码时的操作
- 关闭正在运行的MySQL服务。
- 打开DOS窗口,转到mysql\bin目录。
- 输入mysqld --skip-grant-tables 回车。–skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
- 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
- 输入mysql回车,如果成功,将出现MySQL提示符 >
- 连接权限数据库: use mysql;
- 改密码:update user set password=password(“新密码”) where user=“root”;
注:如果遇到错误
可能的错误及解决方案:
a.可能你的数据库版本较高,user表字段中没有password,则执行
update user set authentication_string=password(‘root’) where user=‘root’;
b.
如果还是报这种错误,则使用set password for ‘root’@‘localhost’=password(“root”);
bb.
如果报错:
The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement
bbb.
设置为只读set global read_only=1; FLUSH PRIVILEGES;
然后执行
set password for ‘root’@‘localhost’=password(“root”); FLUSH PRIVILEGES; 就可以了
- 刷新权限(必须步骤):flush privileges;
- 退出 quit。
- 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。
mysql 初始密码:
grep “root@localhost” /var/log/mysqld.log