2013-01-30 4 views
4

Ceci est mon script complet. J'essaie de faire une tâche rake qui recueille des données à partir des fichiers dans le répertoire et les charge dans le mysql.Mysql2 :: Erreur: La commande utilisée n'est pas autorisée avec cette version de MySQL: LOAD DATA LOCAL INFILE

J'ai corrigé le fichier local-infile = 1, Rien ne fonctionne. Il me donne juste l'erreur

namespace :db do 
    namespace :load do 
    desc "Load Properties into DB" 
    task :properties => :environment do 
     Mysql2::Client.default_query_options[:connect_flags] |= Mysql2::Client::LOCAL_FILES 
     @files = Dir.entries("db/property_website_scripts/") 
     connection = ActiveRecord::Base.connection() 

     for file in @files 
     next if file == "." || file == ".." 
     sql = "LOAD DATA LOCAL INFILE '#{Rails.root}/db/property_website_scripts/#{file}' 
       INTO TABLE properties 
       FIELDS TERMINATED BY '|' 
       LINES TERMINATED BY '\r\n' 
       (property_type,property_for,city,state,country......);" 

     connection.execute(sql) 
     end 

     #updating created at and updated at 
     Property.update_all({:created_at => Time.now, :updated_at => Time.now}, "created_at IS NULL") 
    end 
    end 
end 
+0

dup possible de http://stackoverflow.com/questions/10762239/enable-load-data -local-infile – pduersteler

+0

J'ai déjà traversé ce post avant –

+1

Dans cet article, mysql est directement accessible, il s'agit d'un fichier rake. Il n'y a pas de problème quand je suis en train d'utiliser mysql, le problème vient quand je l'utilise dans le rakefile. –

Répondre

0

Je reçois la même erreur avec la version 0.3.11 de la gemme mysql2 tout d'un coup. Depuis que j'utilise cette version depuis un moment, je suppose que c'est une sorte de problème de dépendance avec une autre gemme. Essayez de passer à la version 0.3.12b5, qui l'a corrigé pour moi.

+0

Mon collègue a le même problème, la mise à jour vers la version 0.3.12b6 et la mise à jour de mysql dev libs ne l'ont pas résolu. :-( – Jan

Questions connexes