記錄一下自己在 CentOS7 下 rpm 安裝 MySQL8.0.16 的過程。
一、準備工作
1. 下載MySQL所需要的安裝包
從 MySQL官網 下載,上傳至 CentOS 系統 /usr/local/MySQL
目錄下,當然你也可以使用 wget
命令直接下載至 CentOS,此處使用的 8.0.16 版本。
# 你想要的版本
Product Version: 8.0.16
# CentOS選擇Red Hat Enterprise Linux / Oracle Linux
Operating System:OS Version: Red Hat Enterprise Linux / Oracle Linux
# CentOS7 64位選擇
OS Version: Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit)
然後下載rpm包(RPM Bundle)。
2. 檢查是否存在自帶mariadb
CentOS7 開始不自帶 MySQL,替換成了 mariadb,但是我們安裝 MySQL 的時候會衝突,所以需要先解除安裝 mariadb。
# 查詢是否存在自帶mariadb
rpm -qa | grep mariadb
# 如果存在則解除安裝, 比如我查找出來的名稱為mariadb-libs-5.5.60-1.el7_5.x86_64
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
3. 檢查是否安裝過MySQL
# 檢查是否安裝過mysql
rpm -qa | grep mysql
# 如果存在則解除安裝, 比如名稱為mysql-libs-5.1.52.x86_64
rpm -e mysql-libs-5.1.52.x86_64 --nodeps
4. 檢查mysql組及使用者是否存在,不存在則建立
# 檢查
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
# 建立
groupadd mysql
useradd -r -g mysql mysql
5. 檢查是否開啟MySQL使用埠
我使用的預設埠3306。
# 檢視想開的埠是否已開,若此提示FirewallD is not running, 表示為不可知的防火牆 需要檢視狀態並開啟防火牆, 如果是雲伺服器還需要去控制檯配置安全組訪問
firewall-cmd --query-port=3306/tcp
# 開啟埠, success代表成功
firewall-cmd --add-port=3306/tcp --permanent
# 重新整理配置, 使配置生效
firewall-cmd --reload
二、安裝及配置MySQL
1. 解壓
cd /usr/local/mysql
# 解壓
tar -xvf mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
# 檢視一下解壓出來的檔案
ll
#結果
-rw-r--r--. 1 7155 31415 33432660 5月 3 2019 mysql-community-client-8.0.16-2.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 588520 5月 3 2019 mysql-community-common-8.0.16-2.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 5712552 5月 3 2019 mysql-community-devel-8.0.16-2.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 24493344 5月 3 2019 mysql-community-embedded-compat-8.0.16-2.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 3127296 5月 3 2019 mysql-community-libs-8.0.16-2.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 2177156 5月 3 2019 mysql-community-libs-compat-8.0.16-2.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 422672748 5月 3 2019 mysql-community-server-8.0.16-2.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 114848996 5月 3 2019 mysql-community-test-8.0.16-2.el7.x86_64.rpm
2. 通過rpm命令安裝common
# 命令
rpm -ivh mysql-community-common-8.0.16-2.el7.x86_64.rpm
# 列印內容
警告:mysql-community-common-8.0.16-2.el7.x86_64.rpm: 頭V3 DSA/SHA1 Signature, 金鑰 ID 5072e1f5: NOKEY
準備中... ################################# [100%]
正在升級/安裝...
1:mysql-community-common-8.0.16-2.e################################# [100%]
3. 通過rpm命令安裝libs
# 命令
rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm
# 列印內容
警告:mysql-community-libs-8.0.16-2.el7.x86_64.rpm: 頭V3 DSA/SHA1 Signature, 金鑰 ID 5072e1f5: NOKEY
準備中... ################################# [100%]
正在升級/安裝...
1:mysql-community-libs-8.0.16-2.el7################################# [100%]
4. 通過rpm命令安裝client
# 命令
rpm -ivh mysql-community-client-8.0.16-2.el7.x86_64.rpm
# 列印內容
警告:mysql-community-client-8.0.16-2.el7.x86_64.rpm: 頭V3 DSA/SHA1 Signature, 金鑰 ID 5072e1f5: NOKEY
準備中... ################################# [100%]
正在升級/安裝...
1:mysql-community-client-8.0.16-2.e################################# [100%]
5. 通過rpm命令安裝server
如果這裡提示缺少net-tool依賴,那麼 yum -y install net-tools*
安裝再執行
# 命令
rpm -ivh mysql-community-server-8.0.16-2.el7.x86_64.rpm
# 列印內容
警告:mysql-community-server-8.0.16-2.el7.x86_64.rpm: 頭V3 DSA/SHA1 Signature, 金鑰 ID 5072e1f5: NOKEY
準備中... ################################# [100%]
正在升級/安裝...
1:mysql-community-server-8.0.16-2.e################################# [100%]
6. 檢視MySQL安裝包
# 命令
rpm -qa | grep mysql
# 列印內容
mysql-community-libs-8.0.16-2.el7.x86_64
mysql-community-common-8.0.16-2.el7.x86_64
mysql-community-client-8.0.16-2.el7.x86_64
mysql-community-server-8.0.16-2.el7.x86_64
7. 初始化MySQL資料庫
該命令會在 /var/log/mysqld.log
生成隨機密碼。
mysqld --initialize
8. 配置使用者組
配置MySQL資料庫目錄所屬的使用者和組,預設MySQL的配置檔案路徑為: /etc/my.cnf
,如果有需要可以修改配置檔案。
chown mysql:mysql /var/lib/mysql -R
9. 啟動MySQL資料庫
# 啟動mysqld.service
systemctl start mysqld
# 檢視狀態, 顯示有 running 代表啟動成功
systemctl status mysqld
10. 修改資料庫密碼
# 檢視資料庫密碼
cat /var/log/mysqld.log | grep password
# 列印內容, 其中4M4pSDfcr=9o就是資料庫密碼
2020-04-03T14:34:28.837144Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 4M4pSDfcr=9o
# 使用查詢到的密碼登入MySQL
mysql -u root -p'4M4pSDfcr=9o'
# 登入到MySQL之後修改密碼為自定義密碼(我設定為123456), 這個設定還和5.7版本不同呢
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
# 使用`exit;`退出MySQL後使用自定義密碼重新登入
11. 建立使用者並授權遠端登入
此處不能使用 5.7 版本的方式,不然會報錯。
mysql> GRANT ALL PRIVILEGES ON *.* TO 'SunnyBear'@'%' IDENTIFIED BY '123456';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY '123456'' at line 1
8.0版本需要使用如下方式,和 Oralce 的建立授權類似,先建立使用者再賦予許可權。
因為正常開發一般 root 使用者不允許遠端登入,所以我們建立一個 SunnyBear 使用者,賦予使用 sunny 資料庫(已經使用命令建立好)的許可權。
# 先建立一個使用者
mysql> CREATE USER 'SunnyBear'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
# 授權
# 其中sunny.*代表賦予sunny資料庫所有操作許可權, 如果想賦予所有資料庫許可權, 可設定為*.*
# 其中'SunnyBear'@'%'代表允許SunnyBear使用者在任何ip登入, 當然也可以指定ip, 例如'使用者名稱稱'@'ip地址'
mysql> GRANT ALL PRIVILEGES ON sunny.* TO 'SunnyBear'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
# 重新整理許可權
FLUSH PRIVILEGES;
配置成功之後可以使用連線工具嘗試連線,我這裡使用的是 Navicat,至此,單機版 MySQL 安裝配置完成。
12. 一些命令
# 啟動mysql服務
systemctl start mysqld.service
# 停止mysql服務
systemctl stop mysqld.service
# 重啟mysql服務
systemctl restart mysqld.service
# 檢視mysql服務當前狀態
systemctl status mysqld.service
# 設定mysql服務開機自啟動
systemctl enable mysqld.service
# 停止mysql服務開機自啟動
systemctl disable mysqld.service
都讀到這裡了,來個 點贊、評論、關注、收藏 吧!
文章作者:IT王小二
首發地址:https://www.itwxe.com/posts/79382061/
版權宣告:文章內容遵循 署名-非商業性使用-禁止演繹 4.0 國際 進行許可,轉載請在文章頁面明顯位置給出作者與原文連結。