目錄
- 什么是關(guān)系型數(shù)據(jù)庫?
- 什么是非關(guān)系型數(shù)據(jù)庫?
- mysql8.0 版本特性與介紹
- mysql8.0.23 安裝 第一步 下載二進制文件(安裝包)
上篇文章給大家介紹了MySQL 8.0.23 主要更新一覽(新特征解讀) ,感興趣的朋友點擊查看吧!
最新版windows mysql-8.0.23-winx64,點擊下載
mysql8.0.23 linux(centos7)安裝教程(附:配置外網(wǎng)連接用戶授權(quán) 與 不區(qū)分大小寫配置)
(博主在這里叨叨幾句,稍后進入正題。在使用開發(fā)過程中,有時候數(shù)據(jù)庫結(jié)合使用,會成倍提高程序效率)
什么是關(guān)系型數(shù)據(jù)庫?
常見的關(guān)系型數(shù)據(jù)庫:
(其實博主也只使用過 MySQL Oracle sqlServer)
Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL
- 關(guān)系型數(shù)據(jù)庫是依據(jù)關(guān)系模型來創(chuàng)建的數(shù)據(jù)庫。
- 所謂關(guān)系模型就是“一對一、一對多、多對多”等關(guān)系模型,關(guān)系模型就是指二維表格模型,因而一個關(guān)系型數(shù)據(jù)庫就是由二維表及其之間的聯(lián)系組成的一個數(shù)據(jù)組織。
- 關(guān)系型數(shù)據(jù)可以很好地存儲一些關(guān)系模型的數(shù)據(jù),比如一個老師對應(yīng)多個學(xué)生的數(shù)據(jù)(“多對多”),一本書對應(yīng)多個作者(“一對多”),一本書對應(yīng)一個出版日期(“一對一”)
- 關(guān)系模型是我們生活中能經(jīng)常遇見的模型,存儲這類數(shù)據(jù)一般用關(guān)系型數(shù)據(jù)庫
- 關(guān)系模型包括數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)存儲的問題,二維表)、操作指令集合(SQL語句)、完整性約束(表內(nèi)數(shù)據(jù)約束、表與表之間的約束)。
關(guān)系型數(shù)據(jù)庫的特點:
安全(因為存儲在磁盤中,不會說突然斷電數(shù)據(jù)就沒有了)、容易理解(建立在關(guān)系模型上)、但不節(jié)省空間(因為建立在關(guān)系模型上,就要遵循某些規(guī)則,好比數(shù)據(jù)中某字段值即使為空仍要分配空間)
什么是非關(guān)系型數(shù)據(jù)庫?
- 非關(guān)系型數(shù)據(jù)庫主要是基于“非關(guān)系模型”的數(shù)據(jù)庫(由于關(guān)系型太大,所以一般用“非關(guān)系型”來表示其他類型的數(shù)據(jù)庫)非關(guān)系型模型比如有:
列模型:存儲的數(shù)據(jù)是一列列的。關(guān)系型數(shù)據(jù)庫以一行作為一個記錄,列模型數(shù)據(jù)庫以一列為一個記錄。(這種模型,數(shù)據(jù)即索引,IO很快,主要是一些分布式數(shù)據(jù)庫)
鍵值對模型:存儲的數(shù)據(jù)是一個個“鍵值對”,比如name:liming,那么name這個鍵里面存的值就是liming
文檔類模型:以一個個文檔來存儲數(shù)據(jù),有點類似“鍵值對”。
博主本機未安裝其它非關(guān)系型數(shù)據(jù)庫(此處就不一 一截圖啦~)
效率高(因為存儲在內(nèi)存中)、但不安全(斷電丟失數(shù)據(jù),但其中redis可以同步數(shù)據(jù)到磁盤中),現(xiàn)在很多非關(guān)系型數(shù)據(jù)庫都開始支持轉(zhuǎn)存到磁盤中。
mysql8.0 版本特性與介紹
相關(guān)文獻地址
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 文檔數(shù)據(jù)庫的需求,而 MySQL 文檔存儲也為 schema-less 模式的 JSON 文檔提供了多文檔事務(wù)支持和完整的 ACID 合規(guī)性。
(阿里云的圖片 )
窗口函數(shù)。也就是在滿足某種條件的記錄集合上執(zhí)行的特殊函數(shù)。它可以用來實現(xiàn)若干新的查詢方式。窗口函數(shù)與 SUM()、COUNT() 這種集合函數(shù)類似,但它不會將多行查詢結(jié)果合并為一行,而 是將結(jié)果放回多行當(dāng)中。即窗口函數(shù)不需要 GROUP BY。窗口函數(shù)的使用,將大大提高相關(guān)的分析型場景的效率。
UTF-8編碼。從MySQL8.0開始,使用utf8mb4 作來MySQL的默認字符集,并支持 Unicode 9,默認字符集將從 latin1 改為 utf8mb4,默認定序collation將從latin1_swedish_ci 改為 utf8mb4_800_ci_ai;
隱藏索引。可以將索引通過命令設(shè)置為 隱藏 或 顯示。對于被 隱藏 的索引,它不會被查詢優(yōu)化器所使用,我們可以使用這一功能,對相關(guān)的查詢進行性能調(diào)試,通過 隱藏 或 顯示,分析數(shù)據(jù)庫性能差異的原因,同時也可以去除無效的索引。
隱藏一個索引:
ALTER TABLE TABLENAME ALTER INDEX IDXNAME INVISIBLE;
恢復(fù)顯示該索引
ALTER TABLE TABLENAME ALTER INDEX IDXNAME VISIBLE;
持久化設(shè)置。MySQL8.0 新增 SET PERSIST 的命令,該命令的配置值保存到數(shù)據(jù)目錄下的mysqld-auto.cnf文件中,待重啟后,讀取該文件,用其中的配置覆蓋缺省的配置文件,補充了SET GLOBAL 命令只能臨時生效的不足;
命令的使下如:
恢復(fù)顯示該索引
SET PERSIST max_connections = 400;
重構(gòu) BLOB。重構(gòu) BLOB 加速了片段讀取/更新操作,可以加速 JSON 數(shù)據(jù)的操作。大幅改進了對 JSON 的支持,添加了基于路徑查詢參數(shù)從 JSON 字段中抽取數(shù)據(jù)的 JSON_EXTRACT() 函數(shù),以及用于將數(shù)據(jù)分別組合到 JSON 數(shù)組和對象中的 JSON_ARRAYAGG() 和 JSON_OBJECTAGG() 聚合函數(shù)。
事務(wù)性數(shù)據(jù)字典。完全脫離了 MyISAM 存儲引擎,真正將數(shù)據(jù)字典放到了 InnoDB 中的一些表中,不再需要 FRM、TRG、PAR 等文件;Information Schema 現(xiàn)在以數(shù)據(jù)字典表的一個視圖出現(xiàn)。也就是原則上可以不需要 MyISAM 數(shù)據(jù)表類型,系統(tǒng)表都可以放到 InnoDB 之中。
SQL 角色??梢詣?chuàng)建角色,給用戶設(shè)置或去除角色,大大方便權(quán)限的管理。
其實還有很多相關(guān)特性,這里只是挑了些個人覺得比較重要的,要了解更多的信息,可以通過上述的文檔鏈接查看。
mysql8.0.23 安裝 第一步 下載二進制文件(安裝包)
官網(wǎng)地址
https://www.mysql.com/
(隨著版本更新官網(wǎng)下載位置的入口可能會改變)
下載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 # 解壓出來的文件夾名稱較長,此處我們可以稍做修改
第三步 創(chuàng)建用戶組以及用戶和密碼 并授權(quán)
創(chuàng)建用戶組以及用戶和密碼
groupadd mysql
useradd -g mysql mysql
授權(quán)用戶 (如:下列配置my.cnf 時指定的目錄都需給mysql 用戶授權(quán))
chown -R mysql.mysql /opt/mysql/mysql-8.0.23
第四步 初始化基礎(chǔ)信息 (切記切記 設(shè)置不區(qū)分大小寫得在初始化時設(shè)置)
創(chuàng)建 data 數(shù)據(jù)存儲目錄
mkdir data
切換到bin 目錄下
cd bin
初始化基礎(chǔ)信息 切記切記切記mysql8 一定要在初始化時設(shè)置 不區(qū)分大小寫,不然后續(xù)修改和刪除重裝沒區(qū)別
初始化后在原始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
得到系統(tǒng)初始化隨機默認密碼,此處得記錄下密碼,后續(xù)操作需要(敲黑板)
第五步 編輯my.cnf文件
my.cnf 還有很多可設(shè)置屬性,詳情請查看官方文檔,此處僅設(shè)置主要參數(shù)
配置my.cnf 的文件路徑 文件夾必須存在(不存在文件時,啟動會提示文件不存在)
#設(shè)置mysql的安裝目錄
basedir=/opt/mysql/mysql-8.0.23
#設(shè)置mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄
datadir=/opt/mysql/mysql-8.0.23/data
#設(shè)置客戶端默認字符集
character-set-server=UTF8MB4
# 創(chuàng)建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
#設(shè)置是否區(qū)分大小寫(初始化后此參數(shù)在這里也必須存在)
lower_case_table_names=1
# 默認使用“mysql_native_password”插件認證
default_authentication_plugin=mysql_native_password
#注釋mysqld_safe 下的所有配置 系統(tǒng)會輸出到 datadir目錄下
#[mysqld_safe]
#log-error=/var/log/mysqld.log
#pid-file=/var/run/mysqld/mysqld.pid
第六步 添加mysqld服務(wù)到系統(tǒng) 授權(quán)以及添加服務(wù)
進入主目錄
cd /opt/mysql/mysql-8.0.23
添加mysqld服務(wù)到系統(tǒng)
cp -a ./support-files/mysql.server /etc/init.d/mysql
授權(quán)以及添加服務(wù)
chmod +x /etc/init.d/mysql
chkconfig --add mysql
第七步 啟動服務(wù) 建立服務(wù)同步連接
service mysql start #服務(wù)啟動
service mysql status #查看服務(wù)狀態(tài)
service mysql stop #停止服務(wù)
service mysql restart #重啟服務(wù)
當(dāng)個別小伙伴啟動服務(wù)的時候可能會提示文件夾沒有權(quán)限 ,日志在 datadir 下可查看 設(shè)置mysql 權(quán)限即可
如:
chown -R mysql:mysql /opt/mysql/mysql-8.0.23/data
建立服務(wù)同步連接(不明白 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 '你的密碼';
#刷新權(quán)限
flush privileges;
第九步 配置外網(wǎng)連接授權(quán)
#選擇mysql數(shù)據(jù)庫
use mysql;
#修改root 用戶的連接地址現(xiàn)在 localhost 為本機 也可指定固定ip 此處 % 開啟所有ip訪問
update user set host='%' where user='root';
#刷新權(quán)限
flush privileges;
最后一步 退出控臺 外網(wǎng)遠程連接測試 (安裝完畢)
到此這篇關(guān)于mysql8.0.23 linux(centos7)安裝完整超詳細教程的文章就介紹到這了,更多相關(guān)linux mysql8.0.23安裝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- MySQL8.0.26安裝與卸載的完整步驟記錄
- deepin20.1系統(tǒng)安裝MySQL8.0.23(超詳細的MySQL8安裝教程)
- MySQL8.0.23安裝超詳細教程
- Mysql8.0.22解壓版安裝教程(小白專用)
- MySQL8.0.26的安裝與簡化教程(全網(wǎng)最全)