mysql5.7新增的特性中主要的一方面就是極大增強了安全性,安裝Mysql後預設會為root@localhost使用者建立一個随機密碼,這個随機密碼在不同系統上需要使用不同方式查找,否則無法登入mysql并修改初始密碼。
以下以Centos 7為例介紹如何找到初始的随機密碼。
在低于Mysql 5.7.6的版本上,Mysql是使用mysql_install_db指令初始化資料庫的,該指令會在安裝Mysql的使用者根目錄下建立一個.mysql_secret檔案,該檔案記錄了初始化生成的随機密碼,使用者可使用改密碼登入Mysql并重新修改密碼。
對于Mysql 5.7.6以後的5.7系列版本,Mysql使用mysqld --initialize或mysqld --initialize-insecure指令來初始化資料庫,後者可以不生成随機密碼。但是安裝Mysql時預設使用的是前一個指令,這個指令也會生成一個随機密碼。改密碼儲存在了Mysql的日志檔案中。
在Centos 7系統上使用rpm指令安裝Mysql後,mysql的配置檔案是/etc/my.cnf,打開該檔案,可以看到mysql的datadir和log檔案等的配置資訊,如下:
datadir=/var/lib/mysql
log-error=/var/log/mysqld.log
打開/var/log/mysqld.log檔案,搜尋字元串A temporary password is generated for root@localhost:,可以找到這個随機密碼,通常這一行日志在log檔案的最初幾行,比較容易看到。
使用找到的随機密碼登入mysql,首次登入後,mysql要比必須修改預設密碼,否則不能執行任何其他資料庫操作,這樣展現了不斷增強的Mysql安全性。
本文轉自 Mr_sheng 51CTO部落格,原文連結:http://blog.51cto.com/sf1314/2073437