您好,登錄后才能下訂單哦!
MYSQL 8 的參數(shù)UP DOWN了什么,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
mysql8 是早早晚晚都的上的版本,早上會(huì)讓開發(fā)欣喜,因?yàn)楹芏嗖恢С值墓δ芏奸_始支持,而尤其是MGR 方面的完善和物理復(fù)制的插件等等也是D們期待的。晚上也是有道理的,查詢的速度估計(jì)會(huì)讓繼續(xù)使用MYSQL.5.7的感到欣慰。
mysql 8的安裝上已經(jīng)和mysql,5.7 在參數(shù)的配置上不一樣了,所以還是先搞清楚哪些參數(shù)的問題,配置一個(gè)較優(yōu)的mysql 8 比較好,目前mysql 最新的版本是8.019,目前稍微穩(wěn)定的版本是8.015, 功能有創(chuàng)造性的是8.017.
下面的版本都是基于percona mysql 8.017 對比5.7的配置來說
1 SQL MODE 主要影響影響MySQL支持的SQL語法和它執(zhí)行的數(shù)據(jù)驗(yàn)證檢查,在MYSQL初始化的時(shí)候SQL MODE 是一個(gè)重要的設(shè)置,而MYSQL 5.7 和8.0 在一些配置上是有區(qū)別的。
下面是匹配mysql 8.011 以上的版本的SQL MODE
ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO NO_ENGINE_SUBSTITUTION
下面是mysql 5.78以上的配置
ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO NO_AUTO_CREATE_USER NO_ENGINE_SUBSTITUTION
其中我們可以看到這里兩個(gè)版本的區(qū)別,僅僅體現(xiàn)在 no_auto_create_user 這個(gè)選項(xiàng)上,這個(gè)選項(xiàng)的含義是除非指定了身份驗(yàn)證信息,否則將阻止GRANT語句自動(dòng)創(chuàng)建新用戶帳戶。該語句必須指定使用identify BY或使用identify WITH的身份驗(yàn)證插件的非空密碼。由于MYSQL 8 不能在通過grant 來建立賬戶,必須通過create user來進(jìn)行,所以這個(gè)配置就被MYSQL 8 拿掉了。
如果不改變還使用MYSQL5.7的配置,會(huì)造成啟動(dòng)服務(wù)器報(bào)錯(cuò)
2 innodb_file_format 這個(gè)配置也在mysql 8 被去掉了,如果還有這個(gè)配置則MYSQL 8 無法啟動(dòng)并報(bào)錯(cuò)。主要是mysql 8不在支持Antelope
格式,只支持Barracuda
格式,所以這個(gè)選項(xiàng)的存在就么有必要了。
3 innodb_undo_logs 在5.7 的配置產(chǎn)生多少UNDO LOGS 的配置,在8.0 已經(jīng)使用 innodb_rollback_segments 來替代了。這里有一個(gè)公式,可以計(jì)算出當(dāng)前你的設(shè)置能支持多少并發(fā)的事務(wù),超過這個(gè)數(shù)字就會(huì)出現(xiàn)報(bào)錯(cuò)導(dǎo)致事務(wù)無法運(yùn)行。
(innodb_page_size / 16 / 2) * innodb_rollback_segments *
number of undo tablespaces
4
query_cache_type 這也是在MYSQL 8.0 去掉的功能,在MYSQL 5.X 也很少被使用的一個(gè)雞肋的功能。
5 MYSQL 的關(guān)于賬戶安全方面的插件,全部失效,需要安裝符合8.0 的安全插件產(chǎn)品。所以相關(guān)的配置均不存在,如果配置則報(bào)錯(cuò)。
6 expire_logs_days ,這項(xiàng)配置也已經(jīng)被取消
7 innodb_undo_tablespaces 這項(xiàng)配置也被取消
8 master-info-file, relay_log_info_file 等也都被取消,相關(guān)的信息被強(qiáng)制保存在數(shù)據(jù)表中。
在清理了這些配置后,也添加了其他的參與予以替換
1 Caching_sha2_password_rsa_public_key 新的用戶安全插件使用的密碼插件配置
2 Innodb_undo_tablespaces_active 多少存活的undo tablespace 數(shù)量
3 binlog_expire_logs_seconds 來設(shè)置BINLOG 的過期清理的時(shí)間,單位秒
4 innodb_deadlock_detect 檢測死鎖
5innodb_dedicated_server 自動(dòng)調(diào)整 INNODB BUFFER內(nèi)存 log file size, 數(shù)據(jù)刷新方法。
6 innodb_temp_tablespaces_dir 開始調(diào)整臨時(shí)表的存放的空間
注:在 innodb_dedicated_server 設(shè)置為ON 的情況下,如果不清理原先與innodb_dedicated_server 有關(guān)的信息,則MYSQL 會(huì)根據(jù)你初始的設(shè)置項(xiàng)來進(jìn)行設(shè)置,innodb_dedicated_server 相當(dāng)于無效。
而其中UNDO LOG 的變化比較大
1 可以動(dòng)態(tài)創(chuàng)建UNDO LOG
2 不在只能創(chuàng)建128個(gè) SEGMENT
3 超過一定數(shù)量的UNDO LOG SIZE 會(huì)被 innodb_undo_truncate 檢測通過innodb_max_undo_log_size 來控制,超過這個(gè)設(shè)置就開始自動(dòng)在線收縮。
另外針對用戶密碼驗(yàn)證的問題,之前寫過一篇MYSQL 的針對用戶名密碼驗(yàn)證的文字,這里就不重復(fù)了。
INSTALL COMPONENT 'file://component_validate_password';
最后在順一遍MYSQL 8 的一些限制
1 一個(gè)表最多有 1017 列
2 一個(gè)表最多有 64個(gè)二級索引
3 一行最大的索引的承受字節(jié)是 3072 或者 767 bytes
4 uft8mb4 的表索引最大承受191個(gè)字符,超過無法建立索引,包含前綴索引
5 如果縮減innodb_page_size 到8KB 到 4KB ,以上的部分內(nèi)容的限制會(huì)減半或減75%
6 建立二級索引,單個(gè)索引最大的運(yùn)行列為16列
關(guān)于MYSQL 8 的參數(shù)UP DOWN了什么問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。