MySQL8.4設(shè)置密碼規(guī)則為mysql_native_password問題
MySQL8.4設(shè)置密碼規(guī)則為mysql_native_password
mysql使用的時(shí)候會(huì)有報(bào)錯(cuò):
Plugin 'mysql_native_password' is not loaded
1) 首先確認(rèn)mysql_native_password插件是否已經(jīng)安裝
安裝mysql_native_password插件
INSTALL PLUGIN mysql_native_password SONAME 'mysql_native_password';
如果已經(jīng)安裝,會(huì)顯示該插件已經(jīng)存在
2) 查看插件狀態(tài)
show plugins;
看看mysql_native_password插件的狀態(tài)是不是ACTIVE,如果狀態(tài)值為DISABLED則說明插件沒有激活
3) 修改my.cnf或my.ini配置文件
[mysqld] mysql_native_password=ON #添加此行
不要添加default_authentication_plugin=mysql_native_password,否則mysql會(huì)無法啟動(dòng)。
4) 重啟mysql服務(wù)
5) mysql命令行查看用戶使用的插件
select user,host,plugin from mysql.user;
6) 修改密碼認(rèn)證方式
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your password'; FLUSH PRIVILEGES; #刷新權(quán)限
MySQL8.4新特性速覽
目前,可以在Oracle官網(wǎng)查看到MySQ 8.4新增的內(nèi)容:
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/mysql-nutshell.html
這里選一些重點(diǎn)變化項(xiàng)聊一下。
1.MySQL密碼認(rèn)證變更
從 MySQL 8.4.0 開始,mysql_native_password 認(rèn)證插件默認(rèn)不再啟用。
若要啟用,需要在MySQL啟動(dòng)的時(shí)候,添加–mysql-native-password=ON 參數(shù);
或在配置文件中設(shè)置 mysql_native_password=ON。
2.一些系統(tǒng)變量默認(rèn)值變更
MySQL 8.4,還調(diào)整了與 InnoDB 存儲(chǔ)引擎相關(guān)的多個(gè)服務(wù)器系統(tǒng)變量的默認(rèn)值,比如:
innodb_io_capacity
- 默認(rèn)值改成了10000,之前是200。
- 控制每秒可用于 InnoDB 后臺(tái)任務(wù)的 I/O 數(shù)。
- 比如緩沖池中的頁面刷新,或者合并來自更改緩沖區(qū)的數(shù)據(jù)。
- 如果是 SSD,可設(shè)置 5000 以上。
- 現(xiàn)在線上MySQL,基本都是SSD,所以默認(rèn)值設(shè)置成10000也合理。
innodb_buffer_pool_instances
- InnoDB 緩沖池的區(qū)域數(shù),將緩沖池劃分多個(gè)區(qū)域,可以減少不同線程讀取和寫入緩存頁時(shí)的爭用,可提高并發(fā)性。
- 之前默認(rèn)值是8,如果innodb_buffer_pool_size< 1G,則為1。
- 從8.4開始,如果innodb_buffer_pool_size<= 1G,則為1;
- 如果innodb_buffer_pool_size>1G,則是在下面兩個(gè)計(jì)算中,選一個(gè)最小值:
- innodb_buffer_pool_size innodb_buffer_pool_chunk_size這個(gè)結(jié)果的1/2;
- 可用邏輯CPU數(shù)量的1/4。
innodb_change_buffering
- 決定哪些操作會(huì)使用change buffer,有關(guān)change buffer,我們在前面詳細(xì)介紹過:一文弄懂MySQL更改緩沖區(qū)。
- 之前的版本默認(rèn)值是all,表示innodb_change_buffering會(huì)緩存插入、刪除標(biāo)記操作和后臺(tái)發(fā)生的物理刪除操作。
- 從8.4開始,默認(rèn)是none,表示不緩存這些修改操作,這個(gè)不太理解,大家可以在留言區(qū)討論,可能考慮什么因素。
3.克隆插件
克隆插件的版本要求放寬,允許在同一大版本號下的不同小版本之間進(jìn)行克隆。
4.組復(fù)制相關(guān)
group_replication_set_as_primary變化
使用group_replication_set_as_primary() 選舉新主節(jié)點(diǎn)前,會(huì)等待正在進(jìn)行的 DDL 語句完成。當(dāng)然,這個(gè)是從8.1開始有的特性。
參數(shù)group_replication_consistency默認(rèn)值變更
默認(rèn)值改成了BEFORE_ON_PRIMARY_FAILOVER,以前是EVENTUAL。
這里補(bǔ)充一下group_replication_consistency幾個(gè)值的介紹:
EVENTUAL
:事務(wù)提交后會(huì)廣播到集群的多數(shù)節(jié)點(diǎn),然后節(jié)點(diǎn)檢查是否有沖突,如果沒有沖突,則事務(wù)在本地提交,其他節(jié)點(diǎn)異步處理,可能導(dǎo)致讀取到稍舊的數(shù)據(jù)。BEFORE_ON_PRIMARY_FAILOVER
:在主節(jié)點(diǎn)故障時(shí),必須等待新主處理完待處理的事務(wù),才能開始響應(yīng)業(yè)務(wù)的讀寫請求,這樣可以保證業(yè)務(wù)讀寫請求不會(huì)讀取到舊數(shù)據(jù)。BEFORE
:一個(gè)事務(wù)會(huì)等待之前的事務(wù)執(zhí)行完后再開始執(zhí)行,確保讀取到的數(shù)據(jù)是最新的。AFTER
:寫事務(wù)會(huì)等待其更改在所有其他節(jié)點(diǎn)應(yīng)用后才提交,保證后續(xù)事務(wù)讀取已寫入或其他節(jié)點(diǎn)上最新的值。對只讀事務(wù)沒有影響BEFORE_AND_AFTER
:會(huì)等待之前的事務(wù)執(zhí)行完后才開始執(zhí)行新事物,并等到事務(wù)在所有節(jié)點(diǎn)應(yīng)用后才提交,確保讀取和提交都具有強(qiáng)一致性。
參數(shù)group_replication_exit_state_action默認(rèn)值變更
group_replication_exit_state_action 默認(rèn)值改成了OFFLINE_MODE,以前是READ_ONLY。
這個(gè)參數(shù)控制了MGR實(shí)例處理故障節(jié)點(diǎn)的方式,有三個(gè)選項(xiàng):
- 設(shè)置為read_only時(shí),會(huì)把這個(gè)實(shí)例的super_read_only設(shè)置為on;
- 設(shè)置為offline_mode時(shí),會(huì)把這個(gè)實(shí)例切換到離線模式
- 設(shè)置為abort_server時(shí),將關(guān)閉MySQL。
我們可以回顧一下MGR的故障檢測流程:
也就是當(dāng)一個(gè)節(jié)點(diǎn)出現(xiàn)故障之后,進(jìn)行g(shù)roup_replication_autorejoin_tries參數(shù)配置的自動(dòng)重連次數(shù)之后。
這個(gè)節(jié)點(diǎn)的行為,之前默認(rèn)情況下,是設(shè)置為super_read_only,現(xiàn)在是會(huì)把實(shí)例切換到離線模式。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL中將逗號分隔的字段轉(zhuǎn)換為多行數(shù)據(jù)的方法
在我們的實(shí)際開發(fā)中,經(jīng)常需要存儲(chǔ)一些字段,它們使用像,?-?等連接符進(jìn)行連接,在查詢過程中,有時(shí)需要將這些字段使用連接符分割,然后查詢多條數(shù)據(jù),今天,我們將使用一個(gè)實(shí)際的生產(chǎn)場景來詳細(xì)解釋這個(gè)解決方案,需要的朋友可以參考下2024-04-04Shell下實(shí)現(xiàn)免密碼快速登陸MySQL數(shù)據(jù)庫的方法
這篇文章主要給大家介紹了在Shell下實(shí)現(xiàn)免密碼快速登陸MySQL數(shù)據(jù)庫的方法,文中通過示例代碼一步步介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來一起看看吧。2017-06-06MySQL數(shù)據(jù)導(dǎo)入導(dǎo)出的三種辦法總結(jié)
當(dāng)我們需要切換數(shù)據(jù)庫或備份數(shù)據(jù)時(shí),導(dǎo)入和導(dǎo)出數(shù)據(jù)庫是一個(gè)常見的操作,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)導(dǎo)入導(dǎo)出的三種辦法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05Mysql 切換數(shù)據(jù)存儲(chǔ)目錄的實(shí)現(xiàn)方法
這篇文章主要介紹了Mysql 切換數(shù)據(jù)存儲(chǔ)目錄的實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下2017-07-07