75

3.5.2.2 - phpMyAdmin for 5.5.27 - MySQLを使用してユーザーのパスワードを設定できません。phpMyAdminユーザーとしてログオンしているときにパスワードを設定しようとすると、次のエラーが表示されます。

#1133 - Can't find any matching row in the user table

root としてログオンすると、次のパスワードが正常に設定されたことを示すメッセージがポップアップ表示されます。

SET PASSWORD FOR 'user'@'%' = PASSWORD( '***' )

どちらの場合も、パスワードは設定されず、現在の空白のままです。

4

10 に答える 10

113

MySQL を別のコンテキスト (phpMyAdmin 内ではない) で使用すると、このエラーが発生しました。GRANT および SET PASSWORD コマンドは、mysql.user テーブルにリストされている特定の既存のユーザーで失敗しました。私の場合、実行することで修正されました

FLUSH PRIVILEGES;

このコマンドのドキュメントには

mysql データベースの許可テーブルから特権を再ロードします。

サーバーは、GRANT および CREATE USER ステートメントの結果として、情報をメモリにキャッシュします。このメモリは、対応する REVOKE および DROP USER ステートメントによって解放されないため、キャッシュを発生させるステートメントの多くのインスタンスを実行するサーバーでは、メモリ使用量が増加します。このキャッシュされたメモリは、FLUSH PRIVILEGES で解放できます。

どうやら、ユーザー テーブル キャッシュが一貫性のない状態に達したため、この奇妙なエラー メッセージが表示されました。詳細については、こちらをご覧ください

于 2013-07-02T22:23:21.550 に答える
14

この問題が発生しましたが、私の場合、「phpmyadmin」ユーザーのパスワードが内容と一致しませんでした/etc/phpmyadmin/config-db.php

「phpmyadmin」ユーザーのパスワードを更新すると、エラーはなくなりました。

これらは私が取ったステップです:

  1. root として mysql にログインします。mysql -uroot -pYOUR_ROOT_PASS
  2. 「mysql」データベースに変更します。use mysql;
  3. 「phpmyadmin」ユーザーのパスワードを更新します。 UPDATE mysql.user SET Password=PASSWORD('YOUR_PASS_HERE') WHERE User='phpmyadmin' AND Host='localhost';
  4. 特権のフラッシュ:FLUSH PRIVILEGES;

終わり!!それは私のために働いた。

于 2013-08-21T21:14:29.690 に答える
6

結局のところ、エラーは確かに非常にあいまいです!

1)MySqlの下のusersテーブルのuser / passwordフィールドを更新していたため、rootとしてログオンしているときにパスワードが設定されていました。

2)ユーザーとしてログオンした場合、パスワードは実際には変更されておらず、MySqlのusersテーブルにパスワードが指定されていても、config.inc.phpファイルはパスワードなしで認証を許可していました。

解決:

config.inc.phpで次の値をfalse変更します。

$cfg['Servers'][$i]['AllowNoPassword'] = true;

それが読むように

$cfg['Servers'][$i]['AllowNoPassword'] = false;

MySqlユーザーテーブルでユーザーのホストをからAnyまたは%変更します。これは、 phpMyAdminコンソールlocalhostを介して簡単に実現できます。

これらの2つの変更により、パスワードを使用してユーザーとして認証できるようになり、パスワードを使用せずに認証できなくなりました。

また、ユーザーとしてログオンしているときに、ユーザーがパスワードを変更できるようにしました。

すべての権限があり、残りはこれら2つの変更で修正されたようです。

于 2012-10-14T19:18:07.867 に答える
2

私のような過ちを犯している誰かのために。

コマンドを使っていた

SET PASSWORD FOR root = 'elephant7'

root ユーザーのパスワードを更新すると、同じエラーが発生しました。上記のすべての回答をすべて試しましたが、成功しませんでした。少し検索したところ、答えがわかりました。

MySQL アカウント名は、ユーザー名とホスト名で構成されます。これにより、異なるホストから接続できる同じ名前のユーザーのアカウントを作成できます。

https://dba.stackexchange.com/

そして、私はコマンドを使用しました

SET PASSWORD FOR 'root'@'localhost'=PASSWORD('mynewpasword');

ここ'root'@'localhost'でトリックが実行され、コマンドが機能しました。

これが誰かにとって有益であることを願っています。

于 2021-03-26T19:27:06.007 に答える
-1

私の場合、GUIベースのdbツール(DbVisualizer)でパスワードを変更しようとしていたMysqlユーザーの名前を変更したところです。「SET PASSWORD」を実行しようとした端末が機能しませんでした (MySQL エラー #1133)。

ただし、パスワードを変更した後でも、「SET PASSWORD」コマンドはまだ機能しませんでした。

ターミナルを閉じて新しいターミナルを開いた後、コマンドは非常にうまく機能しました。

于 2017-03-24T09:22:36.440 に答える