三种修改root用户密码的方式:
方法一: 使用set password命令
首先登录MySQL,使用mysql自带的客户端连接mysql,命令如:mysql -uroot -p
会提示你输入当前root密码,默认为空,直接回车就可以了.
格式: mysql> set password for 用户名@localhost=password('新密码');
例子: mysql> set password for root@localhost=password('666');
这里password('666')中的password会自动进行加密.
方法二:使用mysqladmin 执行管理操作的客户端程序
格式: C:\Users\Administrator>mysqladmin -u用户名 -p旧密码 password 新密码
例子: C:\Users\Administrator>mysqladmin -uroot -p666 password 新密码(也可以不输入,直接回车,提示的时候再输入,这样会安全些,别人无法通过dos下的doskey/history查看到你的新密码)
如下面的例子中的Warning: Using a password on the command line interface can be insecure. 就是安全提示
C:\Users\Administrator>mysqladmin -uroot -p666 password
Warning: Using a password on the command line interface can be insecure.
New password: ***
Confirm new password: ***
C:\Users\Administrator>doskey/history (查看历史记录命令)
mysql -uroot -p
mysqladmin -uroot -p666 password
doskey/history
方法三: update直接修改mysql库中的user表
mysql> update user set password=password('888') where user='root';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 3 Changed: 2 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
----------------------------------------------------------------忘记root密码,怎么办?----------------------------------------------------------------
这里需要重启mysqld服务端
C:\Users\Administrator>net stop mysqld
mysqld 服务正在停止.
mysqld 服务已成功停止。
C:\Users\Administrator>mysqld --skip-grant-tables (跳过用户认证权限表)
2019-06-18 10:54:24 0 [Warning] TIMESTAMP with implicit DEFAULT value is depreca
ted. Please use --explicit_defaults_for_timestamp server option (see documentati
on for more details).
2019-06-18 10:54:24 0 [Note] --secure-file-priv is set to NULL. Operations relat
ed to importing and exporting data are disabled
2019-06-18 10:54:24 0 [Note] mysqld (mysqld 5.6.44) starting as process 2004 ...
重新打开一个dos窗口
C:\Users\Administrator>mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.44 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, 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> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| oldboydb |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.01 sec)
mysql> use mysql;
Database changed
mysql> update user set password=password('666') where user='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 3 Changed: 0 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> quit;
Bye
C:\Users\Administrator>tasklist | findstr mysql
mysqld.exe 2004 Console 1 454,756 K
C:\Users\Administrator>taskkill /F /PID 2004
成功: 已终止 PID 为 2004 的进程。
C:\Users\Administrator>net start mysqld
mysqld 服务正在启动 .
mysqld 服务已经启动成功。