mysql8.0.23 linux(centos7)安裝完整超詳細教程

上篇文章給大傢介紹瞭MySQL 8.0.23 主要更新一覽(新特征解讀) ,感興趣的朋友點擊查看吧!

最新版windows mysql-8.0.23-winx64,點擊下載

mysql8.0.23 linux(centos7)安裝教程(附:配置外網連接用戶授權 與 不區分大小寫配置)

(博主在這裡叨叨幾句,稍後進入正題。在使用開發過程中,有時候數據庫結合使用,會成倍提高程序效率)

什麼是關系型數據庫?

常見的關系型數據庫:
(其實博主也隻使用過 MySQL Oracle sqlServer)
Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL

  • 關系型數據庫是依據關系模型來創建的數據庫。
  • 所謂關系模型就是“一對一、一對多、多對多”等關系模型,關系模型就是指二維表格模型,因而一個關系型數據庫就是由二維表及其之間的聯系組成的一個數據組織。
  • 關系型數據可以很好地存儲一些關系模型的數據,比如一個老師對應多個學生的數據(“多對多”),一本書對應多個作者(“一對多”),一本書對應一個出版日期(“一對一”)
  • 關系模型是我們生活中能經常遇見的模型,存儲這類數據一般用關系型數據庫
  • 關系模型包括數據結構(數據存儲的問題,二維表)、操作指令集合(SQL語句)、完整性約束(表內數據約束、表與表之間的約束)。

在這裡插入圖片描述

關系型數據庫的特點:
安全(因為存儲在磁盤中,不會說突然斷電數據就沒有瞭)、容易理解(建立在關系模型上)、但不節省空間(因為建立在關系模型上,就要遵循某些規則,好比數據中某字段值即使為空仍要分配空間)

什麼是非關系型數據庫?

  • 非關系型數據庫主要是基於“非關系模型”的數據庫(由於關系型太大,所以一般用“非關系型”來表示其他類型的數據庫)非關系型模型比如有:

列模型:存儲的數據是一列列的。關系型數據庫以一行作為一個記錄,列模型數據庫以一列為一個記錄。(這種模型,數據即索引,IO很快,主要是一些分佈式數據庫)
鍵值對模型:存儲的數據是一個個“鍵值對”,比如name:liming,那麼name這個鍵裡面存的值就是liming
文檔類模型:以一個個文檔來存儲數據,有點類似“鍵值對”。

博主本機未安裝其它非關系型數據庫(此處就不一 一截圖啦~)

在這裡插入圖片描述

效率高(因為存儲在內存中)、但不安全(斷電丟失數據,但其中redis可以同步數據到磁盤中),現在很多非關系型數據庫都開始支持轉存到磁盤中。

mysql8.0 版本特性與介紹

相關文獻地址
https://dev.mysql.com/doc/
mysql server 文獻頁
https://dev.mysql.com/doc/refman/8.0/en/

性能提升級。官方表示MySQL 8.0 的速度要比 MySQL 5.7 快 2 倍。MySQL 8.0 在讀/寫工作負載、IO 密集型工作負載、以及高競爭工作負載時相比MySQL5.7有更好的性能

在這裡插入圖片描述

(阿裡雲的圖片 )

2、更強的NoSQL文檔支持。MySQL 從 5.7 版本開始提供 NoSQL 存儲功能,目前在 8.0 版本中這部分功能也得到瞭更大的改進。該項功能消除瞭對獨立的 NoSQL 文檔數據庫的需求,而 MySQL 文檔存儲也為 schema-less 模式的 JSON 文檔提供瞭多文檔事務支持和完整的 ACID 合規性。

在這裡插入圖片描述

(阿裡雲的圖片 )

窗口函數。也就是在滿足某種條件的記錄集合上執行的特殊函數。它可以用來實現若幹新的查詢方式。窗口函數與 SUM()、COUNT() 這種集合函數類似,但它不會將多行查詢結果合並為一行,而 是將結果放回多行當中。即窗口函數不需要 GROUP BY。窗口函數的使用,將大大提高相關的分析型場景的效率。

UTF-8編碼。從MySQL8.0開始,使用utf8mb4 作來MySQL的默認字符集,並支持 Unicode 9,默認字符集將從 latin1 改為 utf8mb4,默認定序collation將從latin1_swedish_ci 改為 utf8mb4_800_ci_ai;

隱藏索引。可以將索引通過命令設置為 隱藏 或 顯示。對於被 隱藏 的索引,它不會被查詢優化器所使用,我們可以使用這一功能,對相關的查詢進行性能調試,通過 隱藏 或 顯示,分析數據庫性能差異的原因,同時也可以去除無效的索引。

隱藏一個索引:

ALTER TABLE TABLENAME ALTER INDEX IDXNAME INVISIBLE;

恢復顯示該索引

ALTER TABLE TABLENAME ALTER INDEX IDXNAME VISIBLE;

持久化設置。MySQL8.0 新增 SET PERSIST 的命令,該命令的配置值保存到數據目錄下的mysqld-auto.cnf文件中,待重啟後,讀取該文件,用其中的配置覆蓋缺省的配置文件,補充瞭SET GLOBAL 命令隻能臨時生效的不足;
命令的使下如:

恢復顯示該索引

SET PERSIST max_connections = 400;

重構 BLOB。重構 BLOB 加速瞭片段讀取/更新操作,可以加速 JSON 數據的操作。大幅改進瞭對 JSON 的支持,添加瞭基於路徑查詢參數從 JSON 字段中抽取數據的 JSON_EXTRACT() 函數,以及用於將數據分別組合到 JSON 數組和對象中的 JSON_ARRAYAGG() 和 JSON_OBJECTAGG() 聚合函數。

事務性數據字典。完全脫離瞭 MyISAM 存儲引擎,真正將數據字典放到瞭 InnoDB 中的一些表中,不再需要 FRM、TRG、PAR 等文件;Information Schema 現在以數據字典表的一個視圖出現。也就是原則上可以不需要 MyISAM 數據表類型,系統表都可以放到 InnoDB 之中。

SQL 角色。可以創建角色,給用戶設置或去除角色,大大方便權限的管理。

其實還有很多相關特性,這裡隻是挑瞭些個人覺得比較重要的,要瞭解更多的信息,可以通過上述的文檔鏈接查看。

mysql8.0.23 安裝 第一步 下載二進制文件(安裝包)

官網地址
https://www.mysql.com/
(隨著版本更新官網下載位置的入口可能會改變)

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

下載mysql二進制文件,匹配自己的linux版本

在這裡插入圖片描述

第二步 上傳文件到指定文件夾下並解壓

在這裡插入圖片描述

cd /opt/mysql
tar -xvf mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.23-linux-glibc2.12-x86_64 mysql-8.0.23 # 解壓出來的文件夾名稱較長,此處我們可以稍做修改

第三步 創建用戶組以及用戶和密碼 並授權

創建用戶組以及用戶和密碼
 groupadd mysql
 useradd -g mysql mysql

在這裡插入圖片描述

授權用戶 (如:下列配置my.cnf 時指定的目錄都需給mysql 用戶授權)
	chown -R mysql.mysql /opt/mysql/mysql-8.0.23

在這裡插入圖片描述

第四步 初始化基礎信息 (切記切記 設置不區分大小寫得在初始化時設置)

創建 data 數據存儲目錄
 mkdir data 
切換到bin 目錄下
 cd bin
初始化基礎信息 切記切記切記mysql8 一定要在初始化時設置 不區分大小寫,不然後續修改和刪除重裝沒區別
初始化後在原始my.con 下lower_case_table_names = 1 是無效的,所以一定要在初始化時加上 --lower-case-table-names=1
 ./mysqld --user=mysql --basedir=/opt/mysql/mysql-8.0.23 --datadir=/opt/mysql/mysql-8.0.23/data/ --initialize --lower-case-table-names=1

得到系統初始化隨機默認密碼,此處得記錄下密碼,後續操作需要(敲黑板)

在這裡插入圖片描述

第五步 編輯my.cnf文件

my.cnf 還有很多可設置屬性,詳情請查看官方文檔,此處僅設置主要參數
配置my.cnf 的文件路徑 文件夾必須存在(不存在文件時,啟動會提示文件不存在)

 #設置mysql的安裝目錄
basedir=/opt/mysql/mysql-8.0.23
 #設置mysql數據庫的數據的存放目錄 
datadir=/opt/mysql/mysql-8.0.23/data
 #設置客戶端默認字符集
character-set-server=UTF8MB4
# 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
#設置是否區分大小寫(初始化後此參數在這裡也必須存在)
lower_case_table_names=1
# 默認使用“mysql_native_password”插件認證 
default_authentication_plugin=mysql_native_password
#註釋mysqld_safe 下的所有配置 系統會輸出到 datadir目錄下
#[mysqld_safe]
#log-error=/var/log/mysqld.log
#pid-file=/var/run/mysqld/mysqld.pid

在這裡插入圖片描述

第六步 添加mysqld服務到系統 授權以及添加服務

 進入主目錄
 cd /opt/mysql/mysql-8.0.23
添加mysqld服務到系統
 cp -a ./support-files/mysql.server /etc/init.d/mysql
授權以及添加服務
 chmod +x /etc/init.d/mysql
 chkconfig --add mysql

在這裡插入圖片描述

第七步 啟動服務 建立服務同步連接

 service mysql start #服務啟動
 service mysql status #查看服務狀態
 service mysql stop #停止服務
 service mysql restart #重啟服務

當個別小夥伴啟動服務的時候可能會提示文件夾沒有權限 ,日志在 datadir 下可查看 設置mysql 權限即可

如:

chown -R mysql:mysql /opt/mysql/mysql-8.0.23/data

建立服務同步連接(不明白 ln -s 的小夥伴可以百度查詢一下該命令的作用 )

 ln -s /opt/mysql/mysql-8.0.23/bin/mysql /usr/bin

第八步 登錄mysql 並修改密碼

#進入mysql 控臺
mysql mysql -uroot -p
#修改密碼
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密碼'; 
#刷新權限
flush privileges; 

在這裡插入圖片描述

第九步 配置外網連接授權

#選擇mysql數據庫
 use mysql;
 #修改root 用戶的連接地址現在 localhost 為本機 也可指定固定ip 此處 % 開啟所有ip訪問
 update user set host='%' where user='root';
 #刷新權限
 flush privileges;

在這裡插入圖片描述

最後一步 退出控臺 外網遠程連接測試 (安裝完畢)

exit;

在這裡插入圖片描述

在這裡插入圖片描述

到此這篇關於mysql8.0.23 linux(centos7)安裝完整超詳細教程的文章就介紹到這瞭,更多相關linux mysql8.0.23安裝內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: