sql >> データベース >  >> RDS >> MariaDB

修正:MariaDBのユーザー「root」@「localhost」のアクセスが拒否されました

    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");

    それを(別のパスワードで)実行すると、うまくいきました。

    したがって、上記のエラーが発生した場合は、おそらくこれが役立つでしょう。


    1. サブクエリと相関サブクエリの違い

    2. SQLiteでミリ秒を日付に変換する方法

    3. 重複キーで無視しますか?

    4. Oracle監査の存続