mariadb.sys って誰?
‘mariadb.sys’@’localhost’ って言う全く身に覚え無いユーザーがあったので、思わず消してしまった。
MariaDB 10.5.13 にて
あれ? mysql.user が見れない!?
MariaDB [mysql]> select * from mysql.user; ERROR 1449 (HY000): The user specified as a definer (‘mariadb.sys’@’localhost’) does not exist |
「ナゼ!? なんでココで ‘mariadb.sys’@’localhost’ が出てくるの?」と思い調べてみると、「mysql.user is a view, its definer is mariadb.sys@localhost user. You delete this user — the view becomes not accessible. This is expected.」とある。
つまりテーブル「mysql.user」はビュー(実体が無いテーブル)であり、ビューを作成したユーザーが「mariadb.sys」であり、ユーザー消去を行うと見えなくなるらしい。
そこで、「mariadb.sys」を「mysql」データベースを閲覧/操作するユーザーとして定義した。
MariaDB [mysql]> grant all on mysql.* to ‘mariadb.sys’@’localhost’; |
すると、問題なく表示されるようになった。
いつの間にか、「mysql」データベースは互換のために色々と変更されているようである。