constante non initialisée MysqlCompat :: MysqlRes avec RubyMine
-
28-10-2019 - |
Question
J'obtiens cette erreur lors de l'exécution de l'environnement de développement via RubyMine 3.1. Le gem mysql est attaché, il fonctionne à partir de Bundler.
Gemfile
gem "mysql", "2.8.1"
Gem a été installé avec:
gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
via la configuration de Bundler .
=> Démarrer WEBrick
=> Application Rails 2.3.10 à partir du http://0.0.0.0:3000 [2011-03-21 < br> 13:36:43] INFO WEBrick 1.3.1
[2011-03-21 13:36:43] INFO ruby 1.8.7
(18/02/2011) [i686-darwin10.7.1]
[2011-03-21 13:36:43] INFO
WEBrick :: HTTPServer # start: pid= 625
port= 3000
=> Appel avec -d pour détacher
=> Ctrl-C pour arrêter le serveur /! \ FAILSAFE /! \ Mon Mar 21 13:36:46
-1000 2011 Statut: 500 Erreur interne du serveur constante non initialisée
MysqlCompat :: MysqlRes
Le système utilise RVM, gemset et ruby 1.8.7, rails 2.3.10 et mysql 5.5.10
Je peux exécuter la console et le serveur Rails correctement via Terminal via
ruby script/server
ruby script/console
Le problème semble être isolé en essayant simplement d'exécuter la console et le serveur Rails via RubyMine. Il y a probablement un petit paramètre de configuration qui me manque et que je n'ai pas vu.
RubyMine est configuré pour utiliser le ruby et l'ensemble de gemmes de RVM et il est également configuré pour ignorer l'ensemble de gemmes global.
La plupart des solutions que j'ai vues prévoient de passer à mysql 5.1, mais cela ne semble pas être la vraie solution car je peux parfaitement exécuter la console et le serveur Rails à partir du terminal.
La solution
J'ai parlé avec John Wang et il me l'a dit, mais il continuait avec ce problème.
RubyMine est une interface graphique, donc il ne récupère pas les paramètres d'environnement définis pour le terminal dans OS X. Voir ce document Jetbrains pour mieux comprendre comment cela fonctionne: http://devnet.jetbrains.net/docs/DOC-1160
Le lien vers l'outil utilisé pour modifier les variables d'environnement est erroné sur le lien ci-dessus. J'ai utilisé ce qui suit: http://www.epikentros.net/Main/Mac_Software.html
Vous devez vous assurer que vous disposez des paramètres sur le terminal (~ / .profile ou ~ / .bash_profile) et sur l'interface graphique OS X (en utilisant l'outil fourni dans le lien ci-dessus) pour DYLD_LIBRARY_PATH (doit avoir le mysql lib répertoire défini ici) et PATH (copiez les valeurs déjà définies pour le terminal dans l'interface graphique OS X)
Cela devrait faire l'affaire. Si vous rencontrez un problème supplémentaire, vérifiez que vous utilisez la même architecture pour MySQL et MySQL Gem (i386 ou x86_64)
Autres conseils
Je viens d'avoir un problème très similaire:
- OSX Leopard
- MySQL 5.1
- Rails 2.3.11
Le script / console et le script / serveur fonctionnaient bien, mais mes spécifications étaient erronées avec
Constante non initialisée MysqlCompat :: MysqlRes
La solution semble être d'utiliser mysql2 au lieu de mysql.N'oubliez pas de changer l'adaptateur de connexion dans database.yml