MySQLにローカルファイルをロードすることはセキュリティ上の問題であり、デフォルトではオフになっています。可能であれば、オフのままにしておきます。許可されていない場合、次のエラーが発生します:
ERROR 1148 (42000): The used command is not allowed with this MySQL version
解決策:
-
--local-infile=1
を使用します mysqlコマンドラインの引数:ターミナルでMySQLを起動するときは、
--local-infile=1
を含めます。 引数、このようなもの:mysql --local-infile=1 -uroot -p mysql>LOAD DATA LOCAL INFILE '/tmp/foo.txt' INTO TABLE foo COLUMNS TERMINATED BY '\t';
次に、コマンドが許可されます:
Query OK, 3 rows affected (0.00 sec) Records: 3 Deleted: 0 Skipped: 0 Warnings: 0
-
または、パラメータをmysqlデーモンに送信します:
mysqld --local-infile=1
-
または、my.cnfファイルに設定します(これはセキュリティリスクです):
mysql
my.cnf
を見つけます ファイルを作成し、rootとして編集します。local-infile
を追加します mysqldおよびmysql指定子の下の行:[mysqld] local-infile [mysql] local-infile
ファイルを保存し、mysqlを再起動します。もう一度お試しください。
詳細については、次を参照してください: http:// dev.mysql.com/doc/refman/5.1/en/load-data-local.html