(本文由言念小文原創,轉載請注明出處)
前言
最近安裝mysql8時,遇到了一些問題,記錄下來作為以后操作指導資料。
Linux上mysql安裝方法個人目前使用的有兩種:
一種是基於rpm安裝;
另一種就是在windows上將安裝包下載下來,然后通過ftp、lrzsz等工具將包傳輸到linux,然后再手動解壓安裝。
由於我的系統為centos,因此這里直接使用rpm安裝。
安裝的步驟預覽:
STEP1 檢查系統是否已安裝mysql,自帶了就卸載掉;
STEP2 查看rpm資源包,選擇與當前linux系統對應的資源包;
STEP3 下載與系統對應的rpm資源包;
STEP4 安裝rpm包;
STEP5 安裝mysql;
STEP6 mysql安裝結果驗證;
STEP7 啟動mysql;
STEP8 查看mysql運行狀態;
STEP9 首次啟動設置root用戶賬號和密碼;
其中STEP7 STEP9為重點關注步驟踩坑步驟。
開始安裝
安裝過程中請確保當前linux系統為root用戶,安裝前創建一個系統用戶mysql作為dba用戶。
STEP1 檢查系統是否已安裝mysql,安裝了就卸載掉
rpm -qa | grep mysql #檢查系統是否已安裝mysql
(如果系統已安裝mysql,可以卸載:
rpm -e mysql #普通模式刪除
rpm -e --nodeps mysql # 強力刪除模式,如果使用上面命令刪除時,提示有依賴的其它文件,則用該命令可以對其進行強力刪除)
STEP2 查看rpm資源包,選擇與當前linux系統對應的資源包
Centos中使用yum命令安裝mysql,安裝前需要去獲取對應的rpm資源包。
首先在 https://dev.mysql.com/downloads/repo/yum/ 查詢rpm資源包,請注意:先查看系統的版本,再選擇與系統匹配的資源包。

圖1

圖2
如圖1圖2所示,我的系統是centos7,因為我選擇紅框標記處對應的rpm包。
STEP3 下載與系統對應的rpm資源包
使用wget命令下載rpm資源包: “wget http://repo.mysql.com/資源包名稱”,即wget http://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
說明:下載的rpm包會下載到當前執行命令的目錄
STEP4 安裝rpm包
rpm安裝命令為:rpm -ivh rpm-pathname
執行命令:rpm -ivh mysql80-community-release-el7-3.noarch.rpm
說明:rpm-pathname為下載的rpm包的全路徑。
STEP5 安裝mysql
執行命令yum install mysql-server安裝mysql,這個過程比較長,如果中途中斷,可以下次直接執行該命令繼續安裝。
STEP6 mysql安裝結果驗證
Mysql安裝完成后,需要驗證一下mysql是否安裝成功:
執行命令 mysqladmin --version,出現如下圖信息則說明安裝ok。

STEP7 啟動mysql
STEP7.1 將mysql的目錄擁有者改為mysql這個用戶
chown mysql:mysql -R /var/lib/mysql
STEP7.2 要保證ibdata1可寫
mysql啟動前一定要保證ibdata1可寫,否則無法啟動mysql,查看/var/log/.mysqld.log日志,報下圖錯誤:

因此需要改變一下目錄讀寫權限:
執行命令:chmod -R 777 /var/lib/mysql
PS:我這里操作比較粗暴,建議只修改/var/lib/mysql/ibdata1的讀寫權限
STEP7.3 初始化mydql(這一步非常重要)
執行命令:mysqld --initialize
該動作會為root用戶在/var/log/mysqld.log中生成一個初始密碼
STEP7.4 啟動mysql
執行命令:systemctl start mysqld
如果mysql啟動失敗,去查看/var/log/mysqld.log中失敗原因,根據日志能夠找到對應解決方法。
STEP8 查看mysql運行狀態
執行命令:systemctl status mysqld
Mysql啟動成功會看到下圖日志:

STEP9 首次啟動設置root用戶賬號和密碼(這是本文重點中的重點,請務必仔細閱讀)
STEP9.1 查看root用戶初始密碼
Mysql8.0之前的版本,root用戶的密碼默認為空,可直接修改root用戶的密碼。Mysql8.0及之后的版本,修改root初始密碼,與之前版本不同,使用之前的方法:
mysqladmin -u root password ‘9527’
結果報錯:

還記得步驟STEP7.3嗎,這一步在/var/log/mysqld.log產生了一個root用戶的初始密碼。執行命令查看root用戶的初始密碼如下圖。
執行命令:cat /var/log/mysqld.log

圖中紅框標記處,就是root用戶的初始密碼。
STEP9.2 使用初始密碼root用戶登錄
執行命令:mysql -u root -p
然后輸入初始密碼登錄成功,如下圖:

STEP9.3 修改root用戶登錄密碼
修改root用戶登錄密碼,然后退出登錄狀態,在此重新使用新密碼登錄,驗證成功。至此,mysql初步安裝完成。
ALTER USER root@localhost IDENTIFIED BY '9527'
exit


總結:步驟STEP7.3非常關鍵,如果缺少這一步,要修復初始密碼報錯問題會很復雜。
