Linux(CentOS7)下rpm安裝MySQL8.0.16
- 2021 年 6 月 2 日
- 筆記
記錄一下自己在 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王小二
首發地址://www.itwxe.com/posts/79382061/
版權聲明:文章內容遵循 署名-非商業性使用-禁止演繹 4.0 國際 進行許可,轉載請在文章頁面明顯位置給出作者與原文鏈接。

