在運維的過程中,我們經(jīng)常會使用到MySQL數(shù)據(jù)庫,由于其安裝體積小、速度快、開放源代碼和社區(qū)活躍特性,一度成為眾多企業(yè)和個人首要選擇。
MySQL經(jīng)過幾十年的發(fā)展,現(xiàn)在已經(jīng)更新到8.0的大版本,但對大多數(shù)用戶而言,5.x的版本才是最穩(wěn)定的,所以今天以MySQL 5.7版本來演示安裝過程。
離線安裝
準(zhǔn)備離線包
上傳MySQL離線軟件包到服務(wù)器上, 這里以CentOS 7做演示。
# 查看已上傳的軟件包
[root@mx mysql]# ls
mysql-5.7.17.tar
[root@mx mysql]#
# 解壓軟件包
[root@mx mysql]# tar -xvf mysql-5.7.17.tar
./mysql-community-client-5.7.17-1.el7.x86_64.rpm
./mysql-community-common-5.7.17-1.el7.x86_64.rpm
./mysql-community-devel-5.7.17-1.el7.x86_64.rpm
./mysql-community-embedded-5.7.17-1.el7.x86_64.rpm
./mysql-community-embedded-compat-5.7.17-1.el7.x86_64.rpm
./mysql-community-embedded-devel-5.7.17-1.el7.x86_64.rpm
./mysql-community-libs-5.7.17-1.el7.x86_64.rpm
./mysql-community-libs-compat-5.7.17-1.el7.x86_64.rpm
./mysql-community-minimal-debuginfo-5.7.17-1.el7.x86_64.rpm
./mysql-community-server-5.7.17-1.el7.x86_64.rpm
./mysql-community-test-5.7.17-1.el7.x86_64.rpm
[root@mx mysql]#
# 安裝, 如果有舊版本的mysql請先備份卸載
yum -y install mysql-community-*.rpm
安裝完成后,設(shè)置開機啟動和運行。
systemctl start mysqld
systemctl enable mysqld
#也可以使用下面的語句一次設(shè)置啟動和開機啟動
#systemctl enable --now mysqld
# 查看運行狀態(tài)
systemctl status mysqld
如果 Active: active (running)顯示為綠色的running,則正常啟動。

獲得軟件的隨機密碼。MySQL不同于MariaDB的空密碼,它是密碼是初始化在日志文件里的一個隨機密碼,我們通過grep查找關(guān)鍵字來篩選出密碼,默認(rèn)只允許root登錄。
grep 'password' /var/log/mysqld.log
在root@localhost:后面的為臨時密碼,復(fù)制到剪貼板中備用(注意:臨時密碼中可能包含有特殊字符,注意不要漏掉)

登錄MySQL
使用mysql命令登錄到root用戶中。
mysql -uroot -p
# 這里我們使用剛剛復(fù)制的密碼粘貼

出現(xiàn)MySQL數(shù)據(jù)庫的版本信息時,登錄成功。

修改root密碼
此時我們使用的臨時的密碼來登錄到系統(tǒng)中是限制了操作的,比如我查一下目前系統(tǒng)中的數(shù)據(jù)庫,系統(tǒng)會提示"ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.",讓我們在執(zhí)行這條語句之前要先修改密碼。

修改密碼前,默認(rèn)的密碼策略是1,需要滿足默認(rèn)密碼包含8位、數(shù)字、大小寫與特殊字符。如果你的密碼不需要設(shè)置這么復(fù)雜,使用下面的語句。
## 臨時有效
# 修改策略為0
set global validate_password_policy=0;
# 修改密碼長度
set global validate_password_length=6;
## 永久生效
vim /etc/my.cnf
[mysqld]
validate_password_policy=0
validate_password_length=6
使用臨時策略執(zhí)行一下,然后修改root密碼。
# 修改密碼
alter user root@"localhost" identified by "密碼";
# 比如修改我的密碼為admin123
alter user root@"localhost" identified by "admin123";
# 退出系統(tǒng)
exit
可以看到我在修改密碼策略之前修改是失敗了的,執(zhí)行密碼策略后再次執(zhí)行成功。

使用新密碼重新登錄系統(tǒng)
mysql -uroot -p
#你的新密碼

在線安裝
在線安裝我們通常使用的是官方提供的倉庫文件,安裝倉庫文件后會更新yum源,通過設(shè)定的yum源就可以安裝指定版本的mysql了。
安裝yum倉庫
由于目前官方已經(jīng)把mysql更新到8.0了,在官網(wǎng)上難以找到5.7的倉庫文件,這里我們使用連接下載。
# 安裝必要依賴
yum -y install gcc wget vim expect
# 下載和安裝倉庫文件
wget -c -P /tmp http://qny.aoarasi.com/mysql57-community-release-el6-9.noarch.rpm
# 備用下載地址
# https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
# 安裝
rpm -ivh /tmp/mysql57-community-release-el6-9.noarch.rpm
# 建立緩存
yum makecache
# 刪除33行,修改為5.7,不然安裝不成功
sed -i '33d' /etc/yum.repos.d/mysql-community.repo
# 添加33為新的地址
sed -i '33i baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/' /etc/yum.repos.d/mysql-community.repo
# 安裝mysql
yum -y install mysql-community-server.x86_64
yum -y install mysql-devel
由于是在線安裝,在網(wǎng)絡(luò)不太好的情況下需要較長的時間。如必須要網(wǎng)絡(luò)也可以把前者的離線文件做成網(wǎng)絡(luò)yum倉庫使用,或使用國內(nèi)鏡像站點加速。
安裝完成后,后續(xù)步驟同前面離線安裝相似,需要使用臨時密碼登錄系統(tǒng)并更改密碼,故不贅述。