ホームページ  >  記事  >  データベース  >  Grant で MySQL によって報告されたエラー ERROR 1064 (42000) を解決する方法

Grant で MySQL によって報告されたエラー ERROR 1064 (42000) を解決する方法

PHPz
PHPz転載
2023-05-28 23:53:133934ブラウズ

インターネット上にある付与メソッドのほとんどはエラーを報告します。主な理由は、元のメソッドが MySQL バージョン 8.0 以降では使用できないことです。

Query MySQL バージョン

SELECT version();

Under version 8.0

grant all privileges on test.* to test@'%' identified by '123456';

エラー報告

エラー 1064 (42000): SQL 構文にエラーがあります。使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。行 1 の「'123456 ' によって識別される」付近

#正しい付与方法

create user test@'localhost' identified by '123456';
grant all privileges on test.* to test@'localhost';
flush privileges;

MySQL8.0 パスワードはログインできません

alter user test@'localhost' identified with mysql_native_password by '123456';

追加: MySQL エラー 1064 (42000) - Grant は何があっても常にエラーを報告します。何が起こっているのでしょうか?

MySQL を使用したことのある友人は、グラント (認可) 操作が頻繁に発生することを知っていますが、そのような問題に遭遇したことがあるのではないでしょうか。

エラー 1064 (42000): SQL 構文にエラーがあります。「123456 によって識別される」付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。 ; 1 行目で

#MySQL グラントの SQL

がターミナルに貼り付けられて実行され、

エラーが報告されます。

各文字を入力すると実行され、エラーが再度報告されます。
何度も実行確認を繰り返しましたが、またエラーが報告されました。
頭がおかしくなってしまいました、どうすればいいですか?心配しないで、記事を読み続けてください。

バージョンの違いが原因で発生する

まず、MySQL のバージョンを確認してください。エラーを報告するほとんどの MySQL バージョンは 8.0 であり、コマンドを暗記したりブラインド タイピングしたりしてもエラーは報告されません。通常は 5.7 が最もよく使用されると思います。信じようと信じまいと?

実際のデータでテストしてください

1.まず MySQL 8.0 で試してください

mysql> grant all privileges on test.* to test@'%' identified by '123456';  
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by '123456'' at line 1

エラーを報告してください

2.MySQL 5.7 でもう一度試してください

rreeee

成功。

注意深い友人は、返された結果に次のメッセージがあることに気づいたことがありますか? 1 つの警告、これは何ですか?

mysql> grant all privileges on test.* to test@'%' identified by '123456';    
Query OK, 0 rows affected, 1 warning (0.08 sec)
mysql> flush privileges;

MySQL 5.7 では、公式がこの SQL 構文が非推奨になることを通知したことが判明しました。

grant の正しい実行

では、MySQL バージョン 8.0 以降では、grant を正しく実行するにはどうすればよいでしょうか?

最初にユーザーを作成してから、権限を付与します。

mysql> show warnings;
+---------+------+------------------------------------------------------------------------------------------------------------------------------------+
| Level   | Code | Message                                                                                                                            |
+---------+------+------------------------------------------------------------------------------------------------------------------------------------+
| Warning | 1287 | Using GRANT for creating new user is deprecated and will be removed in future release. Create new user with CREATE USER statement. |
+---------+------+------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
これは MySQL バージョン 5.7 にも適用可能であり、ワンクリックでユーザーを作成して権限を付与する公式の方法は廃止されたため、今後の使用ではこの方法を使用して権限を付与することをお勧めします。 。

以上がGrant で MySQL によって報告されたエラー ERROR 1064 (42000) を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。