root
へのアクセスが拒否されたことを示すエラーが発生した場合 MariaDBのユーザーの方は、この記事が役立つかもしれません。
エラー
次のコマンドを使用して、システムのタイムゾーン情報をMariaDBにインポートしようとしました。
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
ただし、次のエラーが発生しました:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
原因
これを調べたところ、root
ユーザーはまだパスワードを設定していません。
次のクエリを実行したとき:
SELECT user, password
FROM user
WHERE User = 'root';
次の結果が得られました:
+-------------+----------+ | User | Password | +-------------+----------+ | root | invalid | +-------------+----------+
MariaDBのドキュメントには次のように記載されています:
それでも、sudoを使用せずにMariaDBrootとしてログインしたいユーザーもいます。したがって、古い認証方法(従来のMariaDBパスワード)は引き続き使用できます。デフォルトでは無効になっていますが(「無効」は有効なパスワードハッシュではありません)、通常の
SET PASSWORD
でパスワードを設定できます。 声明。そして、sudoを介したパスワードなしのアクセスを維持します。
それが私たちの答えのように見えます。
ソリューション
上記の段落のように、root
のパスワードを設定する必要がありました ユーザー:
SET PASSWORD FOR 'root'@localhost = PASSWORD("myReallyStrongPwd");
それを(別のパスワードで)実行すると、うまくいきました。
したがって、上記のエラーが発生した場合は、おそらくこれが役立つでしょう。