CentOS7 重置 MySQL 8.0 密碼
上一篇文章我們已經講完了 MySQL 的安裝,本篇接下來將一下如何重置密碼。
1.查看自動生成的密碼
安裝完成后 MySQL會給我們自動生成一個隨機密碼
查看命令如下:
grep 'temporary password' /var/log/mysqld.log
因為自動的生成的密碼無法直接使用,也不便於我們記憶,所以我們要修改密碼。
2.配置文件 MySQL 免密碼登錄
編輯 MySQL 的配置文件
vim /etc/my.cnf
在 pid 開頭的下面一行加入下面這句
skip-grant-tables
保存並退出。
3.重啟 MySQL 服務
service mysqld restart
4.免密碼登錄到 MySQL 上
mysql -u root -p
提示輸入密碼時直接敲回車。
5.選擇 mysql 數據庫
use mysql;
因為 mysql 數據庫中存儲了一張 MySQL 用戶的 user 表
6.在 mysql 數據庫的 user 表中查看當前 root 用戶的相關信息
select host, user, authentication_string, plugin from user;
執行完上面的命令后會顯示一個表格
表格中有以下信息:
host: 允許用戶登錄的 ip ‘位置’ % 表示可以遠程;
user: 當前數據庫的用戶名;
authentication_string: 用戶密碼(在mysql 5.7.9以后廢棄了password字段和password()函數);
plugin: 密碼加密方式;
7.將默認的 root 密碼置空
use mysql; update user set authentication_string='' where user='root';
8.退出 mysql命令行
quit
9.刪除 /etc/my.cnf 文件最后的 skip-grant-tables
vim /etc/my.cnf
刪除 skip-grant-tables 並保存退出。
10.重啟 MySQL 服務
service mysqld restart
11.重新登錄到 MySQL 上
mysql -u root -p
提示輸入密碼時直接敲回車,因為我們剛才已經將密碼置為空了。
12.使用 ALTER 修改 root 用戶密碼
ALTER user 'root'@'localhost' IDENTIFIED BY 'Mysql123@';
其中 'Mysql123@' 為你設置的新密碼,注意這個密碼如果設置的比較簡單,例如 123456 等等,會設置不成功,它會提示你設置的密碼太簡單,最好設置成大寫字母、數字、符號的組合。
執行完之后會提示你 OK 的話,就代表修改成功了,至此重置密碼也就算是完了,你可以使用新設置的密碼去登錄試試。
可能很多同學在修改的密碼中遇到了很多問題,例如裝的是 MySQL 8.0,然后去重置密碼,還是用的舊的命令去修改密碼,導致報錯,因為 MySQL 5.7.6 以后廢棄了 user 表中的 password 字段和 password() 方法,所以使用舊的方法去重置密碼對 mysql 8.0 是不行的!