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