MySQL 8.0 の使用時に発生したいくつかのエラーとその解決策


序文

最近、コースの大きな課題を完了する際に mysql を使用したため、mysql8.0 を購入しましたが、もちろん、使用中にいくつかの小さな問題が発生したので、復習のためにここに記録します。

####実行環境の説明:
->ubuntu バージョン: 20.04
->MySql バージョン: 8.0.27-0ubuntu0.20.04.1 (Ubuntu)


質問 1: エラー 1064 (42000)

問題の完全な説明:

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

問題分析:
これが最も一般的な問題だと思いますが、その理由は文法上の誤りであり、それ以外は何もありません。

問題解決:括弧の一致
など、構文の問題を再確認します。

mysql> create table ttt (
    -> xxx char,
    -> xxxx char;
    //缺少括号

カンマの冗長性

mysql> create table ttt (
    -> xxx char,
    //逗号冗余
    -> );

中国語と英語の文字切り替え

该错误太过基础故不作示例

キーワードを忘れました

mysql> create test(
//缺少 table 关键字
    -> xxx char
    -> );
    

問題 1 は非常に単純ですが、非常に遭遇しやすいため、低レベルのエラーを避けるために書き方を標準化する必要があります。

文法的以外のエラーが原因で 1064 エラーが発生するもう 1 つの不人気な理由は次のとおりです。MySQL
8.0 以降のバージョンでは、データベース システムは、ユーザーが新しいユーザーを作成するために代入ステートメントのグラントを使用することを許可しません。

まず、mysql データベースに入り、ユーザー テーブル内のユーザーを表示します。

mysql> select user from user;
+------------------+
| user             |
+------------------+
| customer         |
| damn             |
| default_1        |
| default_2        |
| debian-sys-maint |
| mysql.infoschema |
| mysql.session    |
| mysql.sys        |
| root             |
+------------------+
9 rows in set (0.00 sec)

次に、grant ステートメントを使用して新しいユーザーを作成し、権限を付与してみます。

mysql> grant all privileges on *.* to 'new'@'%' 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
mysql> 

ここでエラーが報告されていることが分かりますので、MySQL8.0 版を使用してユーザーを作成する場合は、一般的な create ステートメントを使用し、作成後に値を代入する必要があります。


質問 2. エラー 1822 (HY000)

問題の詳しい説明:

エラー 1822 (HY000): 外部キー制約の追加に失敗しました。参照先テーブル 'xxxxx' に制約 'xxxx' のインデックスがありません

問題分析: この問題は通常、新しいテーブルの外部キー制約を設定するときに発生します。その理由は、外部キー制約が外部テーブルの主キーを参照していないためです。

問題の解決策: 外部キー制約をリセットするか、外部テーブルの主キーを変更します。


質問 3、エラー 3619

問題の詳しい説明:

エラー番号: 3619:: シンボル: ER_ILLEGAL_PRIVILEGE_LEVEL; SQLSTATE: HY000
メッセージ: %s に無効な権限レベルが指定されました。

問題分析: この問題は、ユーザーに値を割り当てたときに発生しました。最初にユーザーに選択権限と挿入権限を付与し、次に更新権限を付与したときにエラーが発生しました。いろいろな情報を参考にしましたが、結局このエ​​ラーは解決できませんでした。読者の皆様のご意見やこの問題の解決策をお持ちの方がいらっしゃいましたら、お気軽にお知らせください。

解決された問題: まだ解決されていません


おすすめ

転載: blog.csdn.net/weixin_45704680/article/details/121336276