2

当尝试使用以下方式从迁移脚本加载 csv 时:

ActiveRecord::Base.connection.execute(
    "load data local infile 'my_data.csv' into table my_table fields terminated by ',' lines terminated by '\n' (column1, column2)

我得到:

Mysql2::Error: The used command is not allowed with this MySQL version: load data local infile....

我已经在 my.cnf 中添加了适当的设置:

[mysqld]
local-infile=1
[mysql]
local-infile=1

如果我从 mysql 客户端(例如 mysql -uname -p)运行我的“加载数据本地 infile”命令,效果很好。由于某种原因,在迁移脚本(来自 rails)中,它失败并显示“此 MySQL 版本不允许”。

4

1 回答 1

0

我在使用activerecord-fast-import(基于相同类型的导入查询)时遇到了这个问题,并且发现出于安全原因服务器和客户端都需要启用此功能。

my.cnf服务器确实需要( ) 上的设置。要在客户端启用它,只需将其添加到database.yml

local_infile: true

于 2013-10-01T15:27:44.280 回答