mysql5.7.11修改root默認密碼


知道 MySQL 出了5.7了,並且網上說性能提高了一兩倍,於是在虛擬機上安裝了個 CentOS 7,在上面安裝 MySQL 5.7

我使用的是 yum安裝方式,要求虛擬機能夠上網,因為它會在線下載安裝包

使用 yum 安裝很簡單,在能夠訪問互聯網的情況下,執行

yum list |grep mysql

找到可安裝的 mysql 軟件包,我要安裝的是 5.7的客戶端和服務端,基本上執行

yum install mysql-community-client

yum install mysql-community-server

 就可以了

本文里重點記錄root初始密碼的重置辦法

 

mysql5.7 算是安裝成功了,但是用之前版本介紹的登錄方法都是不成功的:

1)默認 root 密碼為空,其實不為空,使用 mysql -u root -p 進行登錄失敗

2)使用 mysqladmin 進行重置密碼,也不成功,因為它要求提供初始密碼,但是我本來就不知道初始密碼才來重置的,失敗

3)使用 mysqld_safe 進行重置,這個更不靠譜,在根目錄下執行 find -name mysqld_safe,根本找不到這個文件

4)說在 /root/目錄下有一個 .mysql_secret 初始化密碼文件,這個也行,這個文件根本就不存在,手動創建之后,使用 mysqladmin 啟動也不認這個密碼

 

其實想要重置 5.7 的密碼很簡單,就一層窗戶紙:

1、修改 /etc/my.cnf,在 [mysqld] 小節下添加一行:skip-grant-tables=1

這一行配置讓 mysqld 啟動時不對密碼進行驗證

2、重啟 mysqld 服務:systemctl restart mysqld

      或者 mysqld --skip-grant-tables

3、使用 root 用戶登錄到 mysql:mysql -u root 

4、切換到mysql數據庫,更新 user 表:

use mysql;

update user set authentication_string = password('root'), password_expired = 'N', password_last_changed = now() where user = 'root';

FLUSH PRIVILEGES;

在之前的版本中,密碼字段的字段名是 password,5.7版本改為了 authentication_string

5、退出 mysql,編輯 /etc/my.cnf 文件,刪除 skip-grant-tables=1 的內容

6、重啟 mysqld 服務,再用新密碼登錄即可

 

另外,MySQL 5.7 在初始安裝后(CentOS7 操作系統)會生成隨機初始密碼,並在 /var/log/mysqld.log 中有記錄,可以通過 cat 命令查看,找 password 關鍵字

找 到密碼后,在本機以初始密碼登錄,並且(也只能)通過 alter user 'root'@'localhost' identified by 'root' 命令,修改 root 用戶的密碼為 root,然后退出,重新以root用戶和剛設置的密碼進行登錄即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM