RHEL8 CentOS8 下安裝 MySQL 8.0
介紹
RHEL 8 默認發布的MySQL版本8.0,它具有以下新功能:
1. 性能:MySQL 8.0 的速度要比 MySQL 5.7 快 2 倍。MySQL 8.0 帶來了更好的性能**
2. NoSQL:MySQL 從 5.7 版本開始提供 NoSQL 存儲功能,目前在 8.0 版本中這部分功能也得到了更大的改進。該項功能消除了對獨立的 NoSQL 文檔數據庫的需求,而 MySQL 文檔存儲也為 schema-less 模式的 JSON 文檔提供了多文檔事務支持和完整的 ACID 合規性。
3. 窗口函數(Window Functions):從 MySQL 8.0 開始,新增了一個叫窗口函數的概念,它可以用來實現若干新的查詢方式。
4. 隱藏索引:在 MySQL 8.0 中,索引可以被“隱藏”和“顯示”。當對索引進行隱藏時,它不會被查詢優化器所使用。我們可以使用這個特性用於性能調試,例如我們先隱藏一個索引,然后觀察其對數據庫的影響。如果數據庫性能有所下降,說明這個索引是有用的,然后將其“恢復顯示”即可;如果數據庫性能看不出變化,說明這個索引是多余的,可以考慮刪掉。
5. 降序索引:MySQL 8.0 為索引提供按降序方式進行排序的支持,在這種索引中的值也會按降序的方式進行排序。
6. 通用表表達式(Common Table Expressions CTE):在復雜的查詢中使用嵌入式表時,使用 CTE 使得查詢語句更清晰。
7. UTF-8 編碼:從 MySQL 8 開始,使用 utf8mb4 作為 MySQL 的默認字符集。
8. JSON:MySQL 8 大幅改進了對 JSON 的支持。
9. 可靠性:InnoDB 現在支持表 DDL 的原子性。
10. 高可用性(High Availability):InnoDB 集群為您的數據庫提供集成的原生 HA 解決方案。
11. 安全性:對 OpenSSL 的改進、新的默認身份驗證、SQL 角色、密碼強度、授權。
目前 RHEL8 和 CentOS8 引用新的軟件源方式——APPStream,針對非系統核心的軟件可以讓其保持支持主流版本的能力,以及滿足部分客戶同一個軟件想同時安裝不同版本的需求。
因此后續,RHEL 和 CentOS 8會 MySQL 8.1 或者 9 穩定版發布后提供收到官方支持的軟件源安裝支持。
安裝
一、(可選)如果主機內存小於1G需要設置 SWAP,不然無法啟動 MySQL。 MySQL 8.0 的 InnoDB 很吃內存。
sh create-swap.sh 1G// 1G設置1G交換內存,可以自定義
|
二、安裝 MySQL8.0
yum install @mysql:8.0 -y
三、啟動 MySQL8.0 服務和開啟啟動
systemctl start mysqld
|
|
systemctl
enable mysqld
|
四、安全初始化,設置Root密碼和進行安全設置
mysql_secure_installation
基本介紹:
Enter current password for root (enter for none):
解釋:輸入當前 root 用戶密碼,默認為空,直接回車。
Set root password? [Y/n] y > > 解釋:要設置 root 密碼嗎?輸入 y 表示願意。
Remove anonymous users? [Y/n] y
解釋:要移除掉匿名用戶嗎?輸入 y 表示願意。
Disallow root login remotely? [Y/n] y
解釋:不想讓 root 遠程登陸嗎?輸入 y 表示願意。
Remove test database and access to it? [Y/n] y
解釋:要去掉 test 數據庫嗎?輸入 y 表示願意。
Reload privilege tables now? [Y/n] y
解釋:想要重新加載權限嗎?輸入 y 表示願意。
RHEL 8 下的 MySQL 8.0 使用mysql_native_password
作為默認的身份驗證算法,而不是默認的 caching_sha2_password
,如果依賴於新算法,需要手動修改 /etc/my.cnf.d/mysql-default-authentication-plugin.cnf
文件
一、 登入數據庫查看是否安裝成功
mysql -u root -p
然后輸入密碼后登錄
二、簡單查個版本號校驗一下
mysql>
select version();
|
|
+
-----------+
|
|
| version() |
|
|
+
-----------+
|
|
| 8.0.13 |
|
|
+
-----------+
|
|
1 row in
set (0.00 sec)
|
文件地址
MySQL 位置 | 路徑 | 備注 |
---|---|---|
my.cnf | /etc/my.cnf.d/mysql-server.cnf | /etc/my.cnf 是個空文件 |
目錄 | /var/lib/mysql | |
socket | /var/lib/mysql/mysql.sock | |
錯誤日志 | /var/log/mysql/mysqld.log | |
PID文件 | /run/mysqld/mysqld.pid |
RHEL8 CentOS8 下安裝 MariaDB 10.3 10.4 請參考:
https://www.mf8.biz/rhel8-centos8-install-mariadb/