インターネット上にある付与メソッドのほとんどはエラーを報告します。主な理由は、元のメソッドが 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> 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> 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 サイトの他の関連記事を参照してください。