MYSQLエラー2049(HY000):使用されている古い(4.1.1より前の)認証プロトコル参照を使用した接続(クライアントオプション 'secure_auth'が有効)


9

5.0バージョンにあるすべてのデータベースダンプを5.6バージョンに復元しようとすると、復元されました。その後、再接続しようとすると、次のエラーが発生します。

ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol ref used (client option 'secure_auth' enabled)..

My.iniに次の行を追加してサービスを再起動しましたが、問題は解決しません。

skip-grant-tables次のリンクは、MYSQLのバグを示しています。

https://github.com/santisaez/powerstack/blob/master/packages/mysql/mysql-powerstack-secure_auth.patch

誰かがこのソリューションの修正を持っていますか?

回答:


6

これは、古くて古いハッシュアルゴリズムを使用したパスワードを持つユーザーアカウントを持っている場合のバグではありません。投稿したリンクに記載されているバグレポートを読んだ場合:

http://bugs.mysql.com/bug.php?id=69027

[5月1日15:24]トッドファーマー

これに対する回避策(実際には「解決策」)は、影響を受けるユーザーのパスワードを4.1以降のハッシュに変更することです。これは関係なく、実際に推奨されるベストプラクティスです。4.1より前のパスワードハッシュおよび承認プロセスには、顕著なセキュリティ制限があります(http://dev.mysql.com/doc/refman/5.0/en/password-hashing.htmlのドキュメントで説明されています))。

mysql5.6サーバーにスキーマの5.0バージョンを復元することは、とにかく悪い考えです。5.6には、いくつかのテーブルといくつかの完全に新しいテーブルに追加の列があります。ダンプファイルを作成しました。すぐには表示されない他の問題が発生した可能性があります。

また、skip-grant-tables記事には記載されていませんでした...しかし、そのオプションをサーバーに正しく適用すると、すべての認証がバイパスされ、ログインしてパスワードをリセットできるはずです。


8

コマンドラインで、選択肢がない場合は、次のようなものを使用します...

mysql -uTheUseerNAme -pThePassword DbName -h HostName --skip-secure-auth

これがLinuxからの接続に関する私の問題だったので、これが誰かを助けることを願っています


これは私にはうまくいきません。エラーメッセージがまだ表示されます。
fanchyna 2015

6

MySQL Workbenchを使用する場合は、このオプションを確認する必要があります。

ここに画像の説明を入力してください


これはデータベースに接続するために機能しますが、インポート/エクスポートできないという問題は解決しません。古い認証プロトコルでデータをインポート/エクスポートできる方法を現在探しているので、これをテストして確認しました。
rkeet 2014年

ありがとう!Workbenchを使用して接続しようとするとうまくいきました。
Huynh Vinh Phat

このオプションがWorkbenchバージョン6.0.7にあるが、最新バージョンにはないことがわかりました。
Mian Asbat Ahmad

1

これは実際には前の回答へのコメントとして意図されていますが、StackExchangeコメントに合わせるには大きすぎます。

私もこの問題に苦しんでいました。そこで、新しいスタイルのハッシュで新しいユーザーを作成し、その新しいユーザーを問題なく使用できるようにしました。これが私がしたことです:

    [172.16.2.222:mysql Thu Nov  7 16:16:25 2013]> use mysql;
    Database changed
    [172.16.2.222:mysql Thu Nov  7 16:22:23 2013]> describe user;
    describe user;
    +-----------------------+-----------------------------------+------+-----+---------+-------+
    | Field                 | Type                              | Null | Key | Default | Extra |
    +-----------------------+-----------------------------------+------+-----+---------+-------+
    | Host                  | char(60)                          | NO   | PRI |         |       |
    | User                  | char(16)                          | NO   | PRI |         |       |
    | Password              | char(41)                          | NO   |     |         |       |

私たちのPassword列が新しいスタイルのハッシュを保持するのに十分な幅になっているのを見て、嬉しかったです。(幅が41文字未満の場合、幅を広げる勇気がなかったかもしれません:-)

    [172.16.2.222:mysql Thu Nov  7 16:13:10 2013]> show variables like '%pass%';
    +-----------------+-------+
    | Variable_name   | Value |
    +-----------------+-------+
    | old_passwords   | ON    |
    | report_password |       |
    +-----------------+-------+
    2 rows in set (0.06 sec)

old_passwords存在ONが明らかに問題なので、一時的に変更しました:

    [172.16.2.222:mysql Thu Nov  7 16:13:59 2013]> set session old_passwords = 'OFF';
    Query OK, 0 rows affected (0.05 sec)

    [172.16.2.222:mysql Thu Nov  7 16:14:12 2013]> show variables like '%pass%';
    show variables like '%pass%';
    +-----------------+-------+
    | Variable_name   | Value |
    +-----------------+-------+
    | old_passwords   | OFF   |
    | report_password |       |
    +-----------------+-------+
    2 rows in set (0.06 sec)

次に、新しいユーザーを作成しました。

    [172.16.2.222:mysql Thu Nov  7 16:14:16 2013]> create user 'erich' IDENTIFIED BY 'SEKRIT PASSWORD';

...そして新しいハッシュを見てみました:

    [172.16.2.222:mysql Thu Nov  7 16:14:26 2013]> select * from user order by User;
    +-----------+--------------+-------------------------------------------+--------
    | Host      | User         | Password                                  | Select_
    +-----------+--------------+-------------------------------------------+--------
    | localhost | someguy      | 3d9505dd323e53f1                          | Y      
    | %         | someotherguy | 79b3df3b004bb855                          | Y      
    | %         | erich        | *D2589EF6B59146801234567897BB190123456789 | N      
    | %         | anotheroldguy| 60577e0d77b9212b                          | Y      

私のハッシュが他のハッシュよりも大きいことに注意してください!

整理整頓のために、にold_passwords戻しましたOFF。なぜだれもが古いパスワードを使用して新しいユーザーを作成したいのかとは思えないので、これはおそらく無意味です。

とにかく、これで解決しました。


これでOPの質問は解決しますか?そうでない場合、おそらくそれはそれ自体の質問と回答であるべきです。
Max Vernon

@MaxVernonそれを解決するかどうかを決定するのはOP次第だと思います。それは私のために働いた。
offby1 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.