Je viens juste d'avoir un problème avec Ruby / ActiveRecord / MySql 4.1 sous Windows XP!!
J'en fait un post parce que c'est assez vicieux.
Voilà le code de mon script, il est supposé se connecter à une table de la base de donnée et faire un select dedans:
Voilà le genre de messages que j'avais:
Ce code fonctionnait sur ma base de donnée en local mysql 5.0 mais pas sur la base distante en 4.1!!!
Solution:J'ai trouvé la solution sur le wiki de rails mais elle ne me plait pas trop :(
Il faut télécharger msvcr70.dll et mysql-ruby-win32.rar > ...mysql-4.1.15\mysql.so.
Les mettre sous:
ATTENTION:C'est clairement une bidouille, dans mon cas c'est juste un petit script pour moi. J'éviterai de faire ca en production dans un autre cas!
require "rubygems" require_gem "activerecord" # probleme de mysql # http://jeroen.concept-q.biz/files/ ActiveRecord::Base.establish_connection( :adapter => "mysql", :host => "mysql.machine", :username => "user", :password => "password", :database => "dotproject") class TaskLog < ActiveRecord::Base set_table_name "task_log" set_primary_key "task_log_id" end task_logs = TaskLog.find(:all, :conditions => "task_log_creator = '49'") for task_log in task_logs puts task_log.task_log_id end
Voilà le genre de messages que j'avais:
Mysql::Error: Lost connection to MySQL server during query: SELECT * FROM task_log WHERE (task_log_creator = '49') (ActiveRecord::StatementInvalid)
Ce code fonctionnait sur ma base de donnée en local mysql 5.0 mais pas sur la base distante en 4.1!!!
Solution:J'ai trouvé la solution sur le wiki de rails mais elle ne me plait pas trop :(
Il faut télécharger msvcr70.dll et mysql-ruby-win32.rar > ...mysql-4.1.15\mysql.so.
Les mettre sous:
- C:\ruby\lib\ruby\bin\msvcr70.dll
- C:\ruby\lib\ruby\1.8\i386-mswin32\mysql.so
ATTENTION:C'est clairement une bidouille, dans mon cas c'est juste un petit script pour moi. J'éviterai de faire ca en production dans un autre cas!
2 commentaires:
Merci !
Ca a l'air d'etre exactement mon probleme...
Je teste ça ce soir.
UPDATE IMPORTANTE:
Il y a un projet qui éviter cette bidouille:
http://rubyforge.org/projects/mysql-win/
La commande:
gem install mysql
Enregistrer un commentaire