編集:これは、MySQLサーバーを制御している場合にのみ適用されます... MySQLパスワードハッシュ方式の新旧
最初にSQLクエリで確認します
SHOW VARIABLES LIKE 'old_passwords'
(MySQLコマンドラインクライアントでは、 HeidiSQL
または任意のフロントエンド)サーバーがデフォルトで古いパスワードスキーマを使用するように設定されているかどうか。これがold_passwords,Off
を返す場合 user
に古いパスワードエントリがあるだけです テーブル。 MySQLサーバーは、これらのアカウントに古い認証ルーチンを使用します。アカウントに新しいパスワードを設定するだけで、新しいルーチンが使用されます。
mysql.user
を見ると、どのルーチンが使用されるかを確認できます。 テーブル(そのテーブルにアクセスできるアカウントを使用)
SELECT `User`, `Host`, Length(`Password`) FROM mysql.user
これにより、 16が返されます 古いパスワードと41のアカウントの場合 新しいパスワードを持つアカウントの場合(パスワードがまったくないアカウントの場合は0)、それらも処理することをお勧めします。
MySQLフロントエンドのユーザー管理ツール(ある場合)を使用するか、
SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');
FLUSH Privileges;
(User
を置き換えます およびHost
前のクエリから取得した値を使用します。)次に、パスワードの長さをもう一度確認します。 41である必要があります これで、クライアント(mysqlndなど)がサーバーに接続できるようになります。
MySQLのドキュメントも参照してください:* http://dev。 mysql.com/doc/refman/5.0/en/old-client.html
* http://dev.mysql。 com / doc / refman / 5.0 / en / password-hashing.html
* http://dev.mysql。 com / doc / refman / 5.0 / en / set-password.html