這篇文章給大家介紹怎么在linux系統(tǒng)中安裝mysql8.0.23 ,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
創(chuàng)新互聯(lián)公司長期為超過千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為會(huì)寧企業(yè)提供專業(yè)的做網(wǎng)站、成都做網(wǎng)站,會(huì)寧網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。常見的關(guān)系型數(shù)據(jù)庫:
(其實(shí)博主也只使用過 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)系模型就是指二維表格模型,因而一個(gè)關(guān)系型數(shù)據(jù)庫就是由二維表及其之間的聯(lián)系組成的一個(gè)數(shù)據(jù)組織。
關(guān)系型數(shù)據(jù)可以很好地存儲(chǔ)一些關(guān)系模型的數(shù)據(jù),比如一個(gè)老師對應(yīng)多個(gè)學(xué)生的數(shù)據(jù)(“多對多”),一本書對應(yīng)多個(gè)作者(“一對多”),一本書對應(yīng)一個(gè)出版日期(“一對一”)
關(guān)系模型是我們生活中能經(jīng)常遇見的模型,存儲(chǔ)這類數(shù)據(jù)一般用關(guān)系型數(shù)據(jù)庫
關(guān)系模型包括數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)存儲(chǔ)的問題,二維表)、操作指令集合(SQL語句)、完整性約束(表內(nèi)數(shù)據(jù)約束、表與表之間的約束)。
關(guān)系型數(shù)據(jù)庫的特點(diǎn):
安全(因?yàn)榇鎯?chǔ)在磁盤中,不會(huì)說突然斷電數(shù)據(jù)就沒有了)、容易理解(建立在關(guān)系模型上)、但不節(jié)省空間(因?yàn)榻⒃陉P(guān)系模型上,就要遵循某些規(guī)則,好比數(shù)據(jù)中某字段值即使為空仍要分配空間)
非關(guān)系型數(shù)據(jù)庫主要是基于“非關(guān)系模型”的數(shù)據(jù)庫(由于關(guān)系型太大,所以一般用“非關(guān)系型”來表示其他類型的數(shù)據(jù)庫)非關(guān)系型模型比如有:
列模型:存儲(chǔ)的數(shù)據(jù)是一列列的。關(guān)系型數(shù)據(jù)庫以一行作為一個(gè)記錄,列模型數(shù)據(jù)庫以一列為一個(gè)記錄。(這種模型,數(shù)據(jù)即索引,IO很快,主要是一些分布式數(shù)據(jù)庫)
鍵值對模型:存儲(chǔ)的數(shù)據(jù)是一個(gè)個(gè)“鍵值對”,比如name:liming,那么name這個(gè)鍵里面存的值就是liming
文檔類模型:以一個(gè)個(gè)文檔來存儲(chǔ)數(shù)據(jù),有點(diǎn)類似“鍵值對”。
博主本機(jī)未安裝其它非關(guān)系型數(shù)據(jù)庫(此處就不一 一截圖啦~)
效率高(因?yàn)榇鎯?chǔ)在內(nèi)存中)、但不安全(斷電丟失數(shù)據(jù),但其中redis可以同步數(shù)據(jù)到磁盤中),現(xiàn)在很多非關(guān)系型數(shù)據(jù)庫都開始支持轉(zhuǎn)存到磁盤中。
相關(guān)文獻(xiàn)地址
https://dev.mysql.com/doc/
mysql server 文獻(xiàn)頁
https://dev.mysql.com/doc/refman/8.0/en/
性能提升級。官方表示MySQL 8.0 的速度要比 MySQL 5.7 快 2 倍。MySQL 8.0 在讀/寫工作負(fù)載、IO 密集型工作負(fù)載、以及高競爭工作負(fù)載時(shí)相比MySQL5.7有更好的性能
(阿里云的圖片 )
2、更強(qiáng)的NoSQL文檔支持。MySQL 從 5.7 版本開始提供 NoSQL 存儲(chǔ)功能,目前在 8.0 版本中這部分功能也得到了更大的改進(jìn)。該項(xiàng)功能消除了對獨(dú)立的 NoSQL 文檔數(shù)據(jù)庫的需求,而 MySQL 文檔存儲(chǔ)也為 schema-less 模式的 JSON 文檔提供了多文檔事務(wù)支持和完整的 ACID 合規(guī)性。
(阿里云的圖片 )
窗口函數(shù)。也就是在滿足某種條件的記錄集合上執(zhí)行的特殊函數(shù)。它可以用來實(shí)現(xiàn)若干新的查詢方式。窗口函數(shù)與 SUM()、COUNT() 這種集合函數(shù)類似,但它不會(huì)將多行查詢結(jié)果合并為一行,而 是將結(jié)果放回多行當(dāng)中。即窗口函數(shù)不需要 GROUP BY。窗口函數(shù)的使用,將大大提高相關(guān)的分析型場景的效率。
UTF-8編碼。從MySQL8.0開始,使用utf8mb4 作來MySQL的默認(rèn)字符集,并支持 Unicode 9,默認(rèn)字符集將從 latin1 改為 utf8mb4,默認(rèn)定序collation將從latin1_swedish_ci 改為 utf8mb4_800_ci_ai;
隱藏索引??梢詫⑺饕ㄟ^命令設(shè)置為 隱藏 或 顯示。對于被 隱藏 的索引,它不會(huì)被查詢優(yōu)化器所使用,我們可以使用這一功能,對相關(guān)的查詢進(jìn)行性能調(diào)試,通過 隱藏 或 顯示,分析數(shù)據(jù)庫性能差異的原因,同時(shí)也可以去除無效的索引。
隱藏一個(gè)索引:
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文件中,待重啟后,讀取該文件,用其中的配置覆蓋缺省的配置文件,補(bǔ)充了SET GLOBAL 命令只能臨時(shí)生效的不足;
命令的使下如:
恢復(fù)顯示該索引
SET PERSIST max_connections = 400;
重構(gòu) BLOB。重構(gòu) BLOB 加速了片段讀取/更新操作,可以加速 JSON 數(shù)據(jù)的操作。大幅改進(jìn)了對 JSON 的支持,添加了基于路徑查詢參數(shù)從 JSON 字段中抽取數(shù)據(jù)的 JSON_EXTRACT() 函數(shù),以及用于將數(shù)據(jù)分別組合到 JSON 數(shù)組和對象中的 JSON_ARRAYAGG() 和 JSON_OBJECTAGG() 聚合函數(shù)。
事務(wù)性數(shù)據(jù)字典。完全脫離了 MyISAM 存儲(chǔ)引擎,真正將數(shù)據(jù)字典放到了 InnoDB 中的一些表中,不再需要 FRM、TRG、PAR 等文件;Information Schema 現(xiàn)在以數(shù)據(jù)字典表的一個(gè)視圖出現(xiàn)。也就是原則上可以不需要 MyISAM 數(shù)據(jù)表類型,系統(tǒng)表都可以放到 InnoDB 之中。
SQL 角色??梢詣?chuàng)建角色,給用戶設(shè)置或去除角色,大大方便權(quán)限的管理。
其實(shí)還有很多相關(guān)特性,這里只是挑了些個(gè)人覺得比較重要的,要了解更多的信息,可以通過上述的文檔鏈接查看。
官網(wǎng)地址
https://www.mysql.com/
(隨著版本更新官網(wǎng)下載位置的入口可能會(huì)改變)
下載mysql二進(jìn)制文件,匹配自己的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 時(shí)指定的目錄都需給mysql 用戶授權(quán)) chown -R mysql.mysql /opt/mysql/mysql-8.0.23
第四步 初始化基礎(chǔ)信息 (切記切記 設(shè)置不區(qū)分大小寫得在初始化時(shí)設(shè)置)
創(chuàng)建 data 數(shù)據(jù)存儲(chǔ)目錄 mkdir data 切換到bin 目錄下 cd bin 初始化基礎(chǔ)信息 切記切記切記mysql8 一定要在初始化時(shí)設(shè)置 不區(qū)分大小寫,不然后續(xù)修改和刪除重裝沒區(qū)別 初始化后在原始my.con 下lower_case_table_names = 1 是無效的,所以一定要在初始化時(shí)加上 --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)初始化隨機(jī)默認(rèn)密碼,此處得記錄下密碼,后續(xù)操作需要(敲黑板)
第五步 編輯my.cnf文件
my.cnf 還有很多可設(shè)置屬性,詳情請查看官方文檔,此處僅設(shè)置主要參數(shù)
配置my.cnf 的文件路徑 文件夾必須存在(不存在文件時(shí),啟動(dòng)會(huì)提示文件不存在)
#設(shè)置mysql的安裝目錄 basedir=/opt/mysql/mysql-8.0.23 #設(shè)置mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄 datadir=/opt/mysql/mysql-8.0.23/data #設(shè)置客戶端默認(rèn)字符集 character-set-server=UTF8MB4 # 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎 default-storage-engine=INNODB #設(shè)置是否區(qū)分大小寫(初始化后此參數(shù)在這里也必須存在) lower_case_table_names=1 # 默認(rèn)使用“mysql_native_password”插件認(rèn)證 default_authentication_plugin=mysql_native_password #注釋mysqld_safe 下的所有配置 系統(tǒng)會(huì)輸出到 datadir目錄下 #[mysqld_safe] #log-error=/var/log/mysqld.log #pid-file=/var/run/mysqld/mysqld.pid
第六步 添加mysqld服務(wù)到系統(tǒng) 授權(quán)以及添加服務(wù)
進(jìn)入主目錄 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
第七步 啟動(dòng)服務(wù) 建立服務(wù)同步連接
service mysql start #服務(wù)啟動(dòng) service mysql status #查看服務(wù)狀態(tài) service mysql stop #停止服務(wù) service mysql restart #重啟服務(wù)
當(dāng)個(gè)別小伙伴啟動(dòng)服務(wù)的時(shí)候可能會(huì)提示文件夾沒有權(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 并修改密碼
#進(jìn)入mysql 控臺(tái) 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 為本機(jī) 也可指定固定ip 此處 % 開啟所有ip訪問 update user set host='%' where user='root'; #刷新權(quán)限 flush privileges;
最后一步 退出控臺(tái) 外網(wǎng)遠(yuǎn)程連接測試 (安裝完畢)
exit;
關(guān)于怎么在linux系統(tǒng)中安裝mysql8.0.23 就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。