centos7上安裝mysql5.7/mysql8.0

今天接到一個任務是要求安裝兩台centos7.8 ,並分別安裝mysql的5.7 及 8.0 版本

到官方網站上 https://www.mysql.com/support/supportedplatforms/database.html
查找到centos7 可以支援mysql 5.6 5.7 8.0 三個版本無誤

安裝 yum-utils 套件,等會需要用到 yum-config-manager 指令
# yum install yum-utils -y

安裝相對應套件,就會加入 MySQL 的 Yum 源
# yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm -y

目前預設是MYSQL8.0版的YUM源,如果要安裝的 MySQL 版本是 5.7,要先停用8.0版的之後啟用5.7版的
要裝8.0版的話這步驟可以跳過。

停用8.0版
# yum-config-manager –disable mysql80-community
啟用5.7版
# yum-config-manager –enable mysql57-community
檢查一次確認是 5.7版無誤
# yum repolist enabled | grep “mysql.-community.

看起來裡面都是5.7版本的沒錯了。

安裝 MySQL
# yum install mysql-community-server -y

啟動 MySQL 服務
# systemctl start mysqld

每次開機就會自動讓 MySQL 服務被帶起來
# systemctl enable mysqld

檢視 MySQL 服務啟動狀態
# systemctl status mysqld

查目前 MySQL 資料庫系統內,root 帳號的暫時密碼,後面會用到
# grep ‘temporary password’ /var/log/mysqld.log

可以看到這次安裝的暫時密碼是  /)qQK5qJa/Yy

安裝MySQL加強安全性,輸入密碼的時候就是剛剛那個了
# mysql_secure_installation

這邊主要做四件事情
1.設定資料庫用戶 root 帳號的密碼,密碼要求至少包含一個大寫字母、一個小寫字母、一個數字、以及一個特殊符號,密碼長度至少八個字元。
2.是否禁止 root 從非本機登入。
3.是否移除 anonymous 匿名者帳號。
4.是否移除測試資料庫

最後查看版本。沒問題就打完收工了XD
# mysqld -V

看到安裝的版本是 5.7.31版。  另外安裝8.0版也是同樣方式。

如果發現外部無法連上,可能是防火牆的問題

查看防火牆打開的PORTS
# firewall-cmd –list-ports

檢查防火牆狀態
# systemctl status firewalld

檢查防火牆是不是開機啟動時候會自動帶入
# systemctl list-unit-files | grep firewalld

把PORT 3306 加入成允許
# firewall-cmd –zone=public –add-port=3306/tcp –permanent

重新套用防火牆規則
# firewall-cmd –reload

再次查看防火牆開放內容,應該就可以看到剛剛開放的PORT 3306
# firewall-cmd –list-ports

題外話
如果使用telnet測試PORT是否通的時候看到 is not allowed to connect to this MySQL serverConnection closed by foreign host.

可以看這篇,
https://handle.idv.tw/mysql%e6%8c%87%e4%bb%a4%e5%a2%9e%e5%8a%a0%e5%b8%b3%e8%99%9f/
自己加一個USER並放行來源就可以了