Skip to content

Instantly share code, notes, and snippets.

@takenoco82
Created November 17, 2018 07:41
Show Gist options
  • Save takenoco82/78fb0d06c4c68cfe56554a25514fa63c to your computer and use it in GitHub Desktop.
Save takenoco82/78fb0d06c4c68cfe56554a25514fa63c to your computer and use it in GitHub Desktop.
MySQLのCSVインポートで ERROR 1148 (42000) が発生した際の対処方法

CSVファイルのインポートで ERROR 1148 (42000) が発生した際の対処方法

結論

以下のエラーが発生したら、サーバー・クライアント両方の local_infile オプションを 1 に設定してやる

mysql> LOAD DATA LOCAL INFILE '/tmp/users.csv' INTO TABLE users FIELDS TERMINATED BY ',' ENCLOSED BY '"';
ERROR 1148 (42000): The used command is not allowed with this MySQL version

サーバー側の設定

-- 現在の設定を確認
mysql> SELECT @@local_infile;
+----------------+
| @@local_infile |
+----------------+
|              0 |
+----------------+
1 row in set (0.00 sec)

-- 0 だったので 1 を設定する(CSVファイルのインポートを可能にする)
mysql> SET PERSIST local_infile= 1;
Query OK, 0 rows affected (0.02 sec)

-- 変更されたことを確認
mysql> SELECT @@local_infile;
+----------------+
| @@local_infile |
+----------------+
|              1 |
+----------------+
1 row in set (0.00 sec)

クライアント側の設定

# --local_infile=1 をつけてログインする
mysql -uroot -ppassword --local_infile=1
mysql> use sandbox

mysql> LOAD DATA LOCAL INFILE '/tmp/users2.csv' INTO TABLE users FIELDS TERMINATED BY ',' ENCLOSED BY '"';
Query OK, 4 rows affected, 1 warning (0.11 sec)
Records: 4  Deleted: 0  Skipped: 0  Warnings: 1

参考

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment