MySQL數據庫忘記root密碼解決:
- 進入配置文件/etc/my.cnf
- 在[mysqld]下加入一條語句:skip-grant-tables
-
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock skip-grant-tables
- 重新啓動mysqld:service mysqld restart
- 無密碼登錄MySQL數據庫:mysql -uroot -p
-
進入數據庫後操作:
# 使用mysql庫
mysql> use 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
# 一定要查看清楚user表的用戶密碼字段名
mysql> select * from user limit 1\G;
******************* 1. row *********************
Host: localhost
User: root
Select_priv: Y
...(此處省略)
plugin: mysql_native_password
auther_string: *81F5E21E35407D884A6CD4A731AEBFB7AF209E1B
# 這串字符就是加密後的密碼,選取其字段名
password_expired: N
password_last_changed: 2018-05-31 15:12:34
password_lifetime: NULL
account_locked: N
1 row in set (0.00 sec) -
修改密碼:
mysql> update user set auther_string=PASSWORD('123') where User='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 2 Changed: 1 Warnings: 1 - 修改成功後退出數據庫,將配置文件中的無密碼登錄註釋掉
- 重啓mysqld: [root@BDKVM01 ~]# systemctl restart mysqld
-
驗證:[root@BDKVM01 ~]# mysql -uroot -p123