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

エラー:mysqlndは古い安全でない認証を使用してMySQL4.1以降に接続できません

    • my.cnfのold_passwords=1を削除またはコメントします

    MySQLを再起動します。そうしないと、MySQLは古いパスワード形式を使用し続けます。つまり、組み込みのPASSWORD()ハッシュ関数を使用してパスワードをアップグレードすることはできません。

    古いパスワードハッシュは16文字、新しいパスワードハッシュは41文字です。

    • データベースに接続し、次のクエリを実行します:

      SELECT user, Length(`Password`) FROM  `mysql`.`user`;
      

    これにより、どのパスワードが古い形式であるかがわかります。例:

    +----------+--------------------+
    | user     | Length(`Password`) |
    +----------+--------------------+
    | root     |                 41 |
    | root     |                 16 |
    | user2    |                 16 |
    | user2    |                 16 |
    +----------+--------------------+

    ここで、各ユーザーは複数の行を持つことができることに注意してください(異なるホスト仕様ごとに1つ)。

    各ユーザーのパスワードを更新するには、次のコマンドを実行します。

    UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';
    

    最後に、特権をフラッシュします:

    FLUSH PRIVILEGES;
    

    出典:PHP5.3で「mysqlndが古い認証を使用してMySQL4.1以降に接続できない」を修正する方法



    1. SQLite GLOB

    2. 2つの異なるテーブルに2つのcount(*)結果を合計するにはどうすればよいですか?

    3. ドミノの秘密、またはドミノゲームデータモデル

    4. Rails on OSX 10.11 El Capitan:ライブラリがロードされていません:libmysqlclient.18.dylib