Mariadb

將 mysql 遷移到 Mariadb 時,如何修改從 10.4.1 開始的 mariadb 中的身份驗證外掛,以便在沒有密碼的情況下為 root 使用者獲取 mysql 訪問權限

  • March 13, 2021

https://kofler.info/root-login-problem-mit-mariadb/描述了一種用於修改用於驗證使用者的外掛的方法

update mysql.user set plugin='' where user='root';

導致

ERROR 1348 (HY000): Column 'plugin' is not updatable

https://mariadb.com/kb/en/library/mysqlglobal_priv-table/

解釋說現在有一個單列 global_priv 表,而原始使用者表現在是一個視圖。

select * from mysql.global_priv where User='root';

是可能的或

SELECT CONCAT(user, '@', host, ' => ', JSON_DETAILED(priv)) FROM mysql.global_priv where user='root';

以獲得更易讀的版本。

不幸的是,文件沒有說明

  1. 如何修改此設計決策下的列?
  2. 改變的動機?

很高興能回答這兩個問題 - 顯然#1 是更緊迫的問題。

見:https ://mariadb.com/kb/en/library/authentication-plugin-unix-socket/

ALTER USER root@localhost identified via  unix_socket;  
flush privileges;

mysql

現在適用於沒有密碼的root使用者。

聲明 *“unix_socket 身份驗證外掛也預設安裝…”

如果從 Oracle 的 mysql 遷移到 mariadb 確實沒有效果

ALTER USER 'root'@'localhost' IDENTIFIED WITH <auth_plugin> USING PASSWORD('RootPass');

引用自:https://dba.stackexchange.com/questions/249916