3

当我尝试加载 .cvs 文件时出现此错误

Mysql2::Error: 此 MySQL 版本不允许使用的命令:加载数据本地 infile 'db/fixtures/devel_countries.csv'

我检查了mysql服务器配置并设置了LOCAL_INFILE = 'ON'

这是我的配置中的一些数据:

  • Mysql Server 版本:5.5.16 MySQL Community Server (GPL)
  • 红宝石:1.9.2p136(2010-12-25 修订版 30365)[x86_64-darwin10.8.0]
  • 导轨:3.1.1

我用来执行这个的命令是:

ActiveRecord::Base.connection.execute( "load data local infile 'db/fixtures/devel_regions.csv' into table regions fields terminated by ',' enclosed by '\"' lines terminated by '\n' (id, iso_code, name, country_id, created_at, updated_at);")

有什么问题?

4

1 回答 1

0

查看您的 MySQL 命令:

load data local infile 'db/fixtures/devel_regions.csv' 
into table regions 
fields terminated by ',' enclosed by '\"' 
lines terminated by '\n' 
(id, iso_code, name, country_id, created_at, updated_at);

一般来说,该命令对我来说是正确的。

我注意到您将LOCAL命令包含在其中。根据文档:

如果指定了 LOCAL,则该文件由客户端主机上的客户端程序读取并发送到服务器。该文件可以作为完整路径名给出以指定其确切位置。如果作为相对路径名给出,则该名称被解释为相对于启动客户端程序的目录。

可能是您尝试运行的应用程序无法处理local命令的一部分,尽管看起来您正在正确使用它。

我要尝试的第一件事是从数据库控制台运行命令并查看它是如何工作的。你可以通过运行来获得它bundle exec rails db

于 2012-05-28T14:51:09.453 回答