1

mysql を使用してプロシージャを作成するときに、1 つの問題に直面しました。「root@localhost」を使用してプロシージャを作成しました。コマンドが正常に実行されました。その後、プロシージャ A を削除し、「root@127.0.0.1」を使用して A を作成したいのですが、次のエラーに直面しました: 1820 - このステートメントを実行する前にパスワードを設定する必要があります。

実際にパスワードを設定しましたが、それでもエラーです。また、「root@127.0.0.1」を使用した他の手順はすべてエラーなしで成功しています。問題は A でのみ発生しました。

私が知っているように、このエラーは通常 create DB で見つかります。でも今回は... :(

誰でも私を助けることができますか?どうもありがとう!!!

4

2 に答える 2

3

マニュアルから右:

アカウントのパスワードの有効期限が切れた後、ユーザーが SET PASSWORD ステートメントを発行して新しいアカウント パスワードを確立するまで、そのアカウントを使用してサーバーへの以降の接続で実行されるすべての操作はエラーになります。

mysql> SELECT 1;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

mysql> SET PASSWORD = PASSWORD('new_password');
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT 1;
+---+
| 1 |
+---+
| 1 |
+---+
1 row in set (0.00 sec)
于 2013-07-30T08:17:19.187 に答える
1

最後に、問題は次のステートメントで解決されました。

+++++++++++++++++++++++++++++++++++

SET PASSWORD FOR 'some_user'@'some_host' = PASSWORD('newpwd');

++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++

于 2013-08-01T01:26:51.347 に答える