22

私はUbuntu 12.04とMySQL 5.5を実行しています。問題は次のとおりです。

Python 用の MySQLDB モジュールを使用すると、SQL コマンドは次のようになります。

cursor.execute("LOAD DATA LOCAL INFILE 'example.csv' INTO TABLE 'example_mysql_table' TERMINATED BY ',';")

うまくいきません。私は得るERROR 1148: The used command is not allowed with this MySQL version

私はしばらくの間、この問題の解決策を探し回りましたが、これまでのところ、同じ問題を抱えている他の人が [mysqld] と [mysql ]。これは私にはうまくいきませんでした。その理由はわかりません。

関連リンク:

MySQL: LOAD DATA LOCAL INFILE を有効にする

4

3 に答える 3

69

構成ファイルであらゆる種類の設定を試し、mysqlを何十回も再起動するのに何時間も費やした後、問題を解決しているように見えるこれを思いつきました(これはどこのドキュメントにも見つかりませんでした)

MySQLdb.connect(server, username, password, database, local_infile = 1)
于 2012-10-31T09:13:07.947 に答える
4

ご覧のとおり、ファイル オプションlocal-infileはありません。ただし、この値はスクリプトで動的に変更できます。

このオプションを表示するには、次のクエリを実行します -

SELECT @@global.local_infile;

変数を設定するには、次のステートメントを使用します -

SET @@global.local_infile = 1;

MySQL コマンド ライン コンソールでテストしたところ、すべて問題ありませんでした。

SET @@GLOBAL.local_infile = 1;
LOAD DATA LOCAL INFILE 'test.csv' INTO TABLE table1;
Query OK, 3 rows affected (0.06 sec)

SET @@GLOBAL.local_infile = 0;
LOAD DATA LOCAL INFILE 'test.csv' INTO TABLE table1;
ERROR 1148 (42000): The used command is not allowed with this MySQL version
于 2012-10-15T06:16:55.987 に答える