3

.cvsファイルを読み込もうとするとこのエラーが発生します

Mysql2 :: Error:使用されているコマンドはこのMySQLバージョンでは許可されていません:load data local infile'db / Fixtures / devel_countries.csv'

mysqlサーバーの構成を確認し、設定しましたLOCAL_INFILE = 'ON'

これは私の構成からのいくつかのデータです:

  • Mysqlサーバーのバージョン:5.5.16 MySQL Community Server(GPL)
  • Ruby:1.9.2p136(2010-12-25リビジョン30365)[x86_64-darwin10.8.0]
  • Rails: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 に答える