LoginSignup
0
0

More than 1 year has passed since last update.

MySQLで出力されたエラーとその解決メモ

Posted at

MySQLを使っているときに、遭遇したエラーとその解決方法を記録しておく。

○エラー その1
mysqlimport: Error: 1049 Unknown database 'aa'

発生内容:DATABASE 'aa'が見つからない。
入力内容:mysqlimport -u root -p --local aa /home/hogehoge/mywork/test.csv
原 因:インポート先のDB名を間違って’aa’と入力したため。
対 応:正しいDB名に変えた。

○エラー その2(よくやってしまう)
ERROR 1046 (3D000): No database selected

発生内容:DATABASEが選択されていない。
入力内容:ログイン後、すぐにSELECT文やCREATE文を実行。
原 因:USE DB名で作業したいデータベースを指定しなかったため。
対 応:USE DB名を実行した。

○エラー その3(定番)
ERROR 1064 (42000): You have an error in your SQL syntax;

発生内容:構文にエラーがあります。
入力内容:SELECT * FORM tbl_stocks WHERE order_id = '90';など
原 因:予約語などの綴り間違い、()の閉じ忘れなど。
対 応:正確に入力した。

○エラー その4
ERROR 1068 (42000): Multiple primary key defined

発生内容:PrimaryKeyが複数定義されています。
入力内容:ALTER TABLE tbl_staff ADD PRIMARY KEY (staff_name);
原 因:CREATE文で既にキーを設定していたため。
対 応:一度、PRIMARYキーを外して、ALTER文でまとめて指定する。もしくはテーブルを作り直す。

*AUTO_INCREMENTを指定している場合は、CHANGEでAUTO_INCREMENTを外し、その後、キーを外して、とか手間がかかる。

○エラー その5
mysqlimport: Error: 3948, Loading local data is disabled;   

発生内容:データのロードが出来ない。
入力内容:mysqlimport -u root -p --local test1 /home/hogehoge/mywork/test.csv
原 因:ファイル読み書きの許可をしていなかった。
対 応:サーバー側、クライアント側双方で、使用できるよう許可を出す。

・サーバー側 local_infileの値を1にセット

SET PERSIST local_infile= 1;
/*確認*/
mysql> SELECT @@local_infile;
+----------------+
| @@local_infile |
+----------------+
|              1 |
+----------------+
1 row in set (0.00 sec)

・クライアント側  ログイン時にオプションで許可を示す値をセット

mysql -u root -p --enable-local-infile
◯ メモ

・エラー番号と説明で、何となく何が起こったのかは推測できるが、今後はエラーログの出力等を詳しく調べ、不具合だけでなく、動作状況の確認(処理の遅いものなど)ができるようにしたい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0