- 用SET PASSWORD命令
首先登录MySQL。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123456');
- 用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123
- 用UPDATE直接编辑user表
首先登录MySQL。
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;
- windows服务器上忘记root密码
关闭正在运行的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("123") where user="root";(别忘了最后加分号) 。
刷新权限(必须步骤):flush privileges; 。
退出 quit。
注销系统,再进入,使用用户名root和刚才设置的新密码123登录。
- Linux服务器上忘记root密码
首先停止mysql服务进程:
service mysqld stop
然后编辑mysql的配置文件my.cnf
vim /etc/my.cnf
找到 [mysqld]这个模块:
在最后面添加一段代码
skip-grant-tables ##忽略mysql权限问题,直接登录
然后保存 :wq!退出
启动mysql服务:
service mysqld start
直接进入mysql数据库:
Starting MySQL. SUCCESS!
[root@web1 ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.34 Source distribution
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
使用mysql表,然后进行修改mysql的root密码:
mysql> use mysql; ##使用mysql数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> update user set password=password("123456") where user="root";##更新密码
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql> flush privileges;##刷新权限
Query OK, 0 rows affected (0.00 sec)
注意:最后将mysql服务进程关闭,把添加过的跳过验证信息删除,要不然对数据库安全威胁太大