Je suis passé à Snow Leopard avec le disque que nous avons obtenu à WWDC.
Essayer de lancer certaines de mes applications Rails se plaint maintenant de SQL
(in /Users/coneybeare/Projects/Ambiance/ambiance-server)
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
Importing all sounds in /Users/coneybeare/Projects/Ambiance/ambiance-sounds/Import 32/Compressed/
-- AdirondackPeepers.caf
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
dlopen(/opt/local/lib/Ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle, 9): Library not loaded: /usr/local/mysql/lib/libmysqlclient.16.dylib
Referenced from: /opt/local/lib/Ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle
Reason: image not found - /opt/local/lib/Ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle
(See full trace by running task with --trace)
J'aurais pu jurer que j'avais déjà réglé ça une fois. Le problème est que
Sudo gem install mysql
ne fonctionne pas et donne l'erreur:
Building native extensions. This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
/opt/local/bin/Ruby extconf.rb install mysql
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
Gem files will remain installed in /opt/local/lib/Ruby/gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /opt/local/lib/Ruby/gems/1.8/gems/mysql-2.7/gem_make.out
Mysql a-t-il déjà utilisé Rails sur Snow Leopard? Si oui, quelle est votre configuration et, mieux encore, que puis-je faire pour la reproduire?
Je viens de vivre la même douleur ... voici ce qui a fonctionné pour moi:
Sudo gem update --system Sudo env ARCHFLAGS = "- Arch x86_64" Gem installer mysql - --with-mysql-config =/usr/local/mysql/bin/mysql_config.
J'ai également désinstallé toutes les gemmes mysql qui flottaient depuis mes 10,5 jours, cela peut le faire si ce qui précède ne fonctionne pas pour vous :)
Reconstruire mysql en 64 bits ou installer la version 64 bits est important, mais vous devez également vous assurer de construire les parties natives de la gem mysql en 64 bits également (cela ne s'applique pas si vous utilisez l'un des macs Intel Core Duo d'origine ).
Voici la commande magique:
env ARCHFLAGS="-Arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Vous devez configurer les ARCHFLAGS comme indiqué ci-dessus chaque fois que vous effectuez une installation Gem avec des composants natifs sur Snow Leopard.
Si vous utilisez bundler, vous pouvez utiliser "bundle config" pour définir les arguments de construction appropriés pour mysql, comme ceci:
bundle config build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config
Je me suis battu avec ça pendant longtemps et finalement je l'ai fait travailler sur Snow Leopard. J'ai fini par installer Ruby, RubyGems et MySQL à partir des sources (voir le tutoriel Hivelogic pour installer Ruby et RubyGems. Le tutoriel MySQL est lié en bas). J'ai enfin réussi à installer la gemme, mais je continuais à obtenir
dyld: lazy symbol binding failed: Symbol not found: _mysql_init
Referenced from: /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle
Expected in: flat namespace
dyld: Symbol not found: _mysql_init
Referenced from: /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle
Expected in: flat namespace
Trace/BPT trap
J'ai finalement supprimé le mysql.bundle
(je ne sais pas du tout à quoi cela sert) et tout a fonctionné.
Sudo rm -f /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle
J'espère que ça aide quelqu'un.
J'ai vu ce problème plusieurs fois. presque chaque fois que je construis mysql sur une machine. Je pense que vous devez passer votre mysqlconfig dans le cadre de la commande gem install.
Sudo gem install mysql -- --with-mysql-config=/your/mysql/config
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--Ruby=/usr/bin/Ruby
--with-mysql-config
N'oubliez pas que vous avez besoin des fichiers de développement mysql pour pouvoir construire ce joyau.
J'avais des problèmes pour faire fonctionner ma configuration après l'installation de Snow Leopard. J'ai trouvé MAMP sur http://www.mamp.info et il regroupe Apache, PHP et MySQL. vous l'installez comme une application et cela fonctionne. Cela vaut peut-être la peine d'essayer, et c'est gratuit.
engrener
Après une pause de Rails depuis plusieurs années, je viens de passer un peu de temps à configurer mon environnement de développement. J'ai donc pensé créer un tutoriel sur la manière d'installer la dernière version de Rails 3, MySQL et RVM sur SnowLeopard, afin de gagner un peu de temps aux personnes occupant mon poste.
Il fonctionne à partir du 21 août 2011 avec Rails 3.0.10, MySQL 5.5.15 et RVM 1.7.2. Il devrait fonctionner avec les futures versions de Rails 3.0.x, MySQL 5.5.x et RVM 1.7.x.
Installez XCode s'il n'est pas déjà installé. J'ai utilisé 4.0.2. Malheureusement, cela a maintenant été retiré par Apple, mais pourrait être disponible ailleurs sur Internet. La version 3.2.x est téléchargeable gratuitement chez Apple, mais je ne l’ai pas testée avec ce tutoriel, elle fonctionne probablement aussi.
Installez rvm :
user$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
user$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
user$ source .bash_profile
Installez une version de Ruby (par exemple, 1.9.2) dans rvm, les instructions d'utilisation de base sont ici .
user$ rvm install 1.9.2
user$ rvm use 1.9.2
Créez un gemset pour la rvm Ruby installée à l’étape 2 (x est le numéro de version).
user$ rvm gemset create Rails30x
user$ rvm 1.9.2@Rails30x
Installez Rails 3.0.x (x est le numéro de version).
user$ gem install Rails -v 3.0.x.
Téléchargez et installez le paquet MySQL 5.5.x, l’élément de démarrage et le volet des préférences . Ces 3 éléments sont inclus dans le fichier d’installation de DMG. Installez également MySQL WorkBench.
Recherchez/usr/local/mysql-nom-version/support-files (en insérant le nom de répertoire MySQL correct) et modifiez mysql.server (avec les privilèges root). Autour de la ligne 46, localisez les lignes suivantes:
basedir=
datadir=
et les changer en lecture (en insérant le nom de répertoire MySQL correct):
basedir=/usr/local/mysql-version-name
datadir=/usr/local/mysql-version-name/data
Enregistrez le fichier. MySQL peut maintenant être lancé à partir du panneau de préférences.
Pour permettre à Rails 3 d’utiliser mysql, installez la gem mysql2 (voir l’étape suivante). Tout d’abord, vous devez configurer le DYLD_LIBRARY_PATH
pour inclure le répertoire de la bibliothèque MySQL. Pour ce faire, éditez votre fichier ~/.bash_profile dans votre dossier Et incluez les éléments suivants (en insérant le nom de répertoire MySQL correct):
export DYLD_LIBRARY_PATH=/usr/local/mysql-version-name/lib:$DYLD_LIBRARY_PATH
Sans l'inclusion du répertoire dans DYLD_LIBRARY_PATH, un message indiquant de ne pas trouver la bibliothèque .__ apparaîtra et que le serveur abandonnera.
Installez le mysql2
gem. (à partir de mai 2011, la version 0.2.7 est la version de travail la plus récente avec Rails 3.0.x).
user$ gem install mysql2 -v 0.2.7
Créez une application Rails et la base de données correspondante (appname_development).
user$ Rails new appname
Ajoutez ceci au fichier Gemfile de l'application: gem 'mysql2', "0.2.7"
Ajoutez ceci à la base de données de l'application.yml:
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: appname_development
pool: 5
username: username
password: pwd
Host: localhost
lancez l'application et cochez la case "À propos de l'environnement de votre application". Tout devrait fonctionner correctement.
Les instructions pour configurer ARCHFLAGS et passer --mysql-config = ... n'ont pas semblé suffire à résoudre ce problème pour moi sur Snow Leopard. En plus de cela, j'ai ajouté:
DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH"
à mon profil bash, et cela l'a résolu pour moi.
J'ai eu le même problème et voici ce qui a fonctionné pour moi.
Installez Snow Leopard et le MySQL DMG 64 bits.
Créez /etc/my.cnf pour pointer vers mon précédent répertoire de données MySQL (comme décrit ici ) et exécutez Sudo mysql_upgrade
.
Ouvrez IRB et réinstallez toutes mes pierres précieuses en utilisant (via blog.costan.us/2009/07/rebuild-your-Ruby-gems-if-you-update-to.html).
`gem list`.each_line {| line | système 'Sudo gem install # {line.split.first}'}
Désinstallez les gemmes MySQL que j'avais installées.
Sudo env ARCHFLAGS="-Arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Avec cela, tout semble fonctionner jusqu'à présent. * frapper du bois *
J'ai procédé comme expliqué dans cet article ( http://www.schmidp.com/2009/06/14/rubyrails-and-mysql-on-snow-leopard-10a380/ ), et tout fonctionne correctement.
N'oubliez pas de rechercher les fautes de frappe dans sa commande pour installer le pilote mysql.
Je pensais pouvoir répondre à ma propre question ici. Il semble que le problème ne soit pas dans mysql, mais dans les liaisons mysql Ruby. J'ai compris cela parce que quand j'ai connecté Querius (mon mysql gui), il était capable de se connecter.
Voici comment compiler à partir des sources pour corriger les liaisons:
cd /tmp
wget http://www.tmtm.org/en/Ruby/mysql/Ruby-mysql-0.2.6.tar.gz
tar xvfz Ruby-mysql-0.2.6.tar.gz
cd Ruby-mysql-0.2.6
./configure
make
Sudo make install
Il y a beaucoup de bibliothèques que je devrai construire à partir du code source de Snow Leopard et elles continuent à apparaître. MacPorts ne semble pas être suffisamment mis à jour pour toutes les bibliothèques, alors je vais le faire moi-même. Prochaine étape: freetype ( http://download.savannah.gnu.org/releases-noredirect/freetype/ )
Je l'ai résolu de cette façon:
Ian Selby merci beaucoup mais je devais enlever la Sudo
devant le Sudo env ARCHFLAGS="-Arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
J'installais sur un gemset et j'utilise rvm, ce qui, je pense, vous demande de ne pas utiliser le mot clé Sudo. Merci beaucoup.
Si vous préférez home brasser , au lieu d’installer MySQL manuellement.
Désinstallez le gem mysql existant (le cas échéant):
Sudo gem uninstall mysql
Localisez le fichier ‘mysql_config’:
find /usr -name 'mysql_config'
Réinstallez mysql gem:
Sudo env ARCHFLAGS="-Arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/bin/mysql_config
Remarque: remplacez /usr/local/bin/
par le chemin mysql_config
correspondant trouvé à l'étape 2. Également sur mon blog .
J'ai essayé l'astuce des archflags plusieurs fois avec de légères variations, mais cela n'a jamais fonctionné pour moi.
Ce que finalement a fait, c’était de revenir à la version de Ruby and gem installée avec Snow Leopard.
J'avais construit et installé ma propre version qui a fonctionné pour moi dans tous les domaines sauf celui-ci . Puisque tout le reste semble bien fonctionner, je ne peux m'empêcher de deviner que le plugin mysql contient des hypothèses géniales. Quoi qu'il en soit, tout ce que je fis fut de changer/usr/bin pour être à nouveau le premier sur mon chemin. J'avais installé Ruby dans /usr/local/Ruby-1.8.7 et /usr/local/Ruby-1.9.1 pour pouvoir basculer facilement. Je pensais le mentionner car la solution archflags semble fonctionner pour beaucoup de gens, mais pas tout à fait.
cet article a résolu le problème pour moi :)
http://techliberty.blogspot.com/2009/12/dealing-with-rake-aborted-uninitialized.html
Avant le léopard
Sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql
Léopard sur une machine PPC:
Sudo env ARCHFLAGS="-Arch ppc" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Leopard sur une machine Intel:
Sudo env ARCHFLAGS="-Arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Snow Leopard (uniquement sur Intel):
Sudo env ARCHFLAGS="-Arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
J'ai renommé le programme mysql_config de $ MYSQL_HOME/bin en quelque chose d'autre, de sorte que le script de configuration du programme d'installation gem ne puisse pas le trouver. Même si j'utilisais l'option libs, le programme d'installation gem utilisait toujours les paramètres de compilation de mon installation mysql, ce qui est fat binaire. Mais l'installation par défaut de Ruby est uniquement x86_64 et par conséquent, la compilation de la gem échoue. Après avoir renommé le programme mysql_config, la commande suivante a très bien fonctionné et a installé la gemme:
Sudo env ARCHFLAGS="-Arch x86_64" gem install mysql -- --with-mysql-dir=/usr/local/mysql
Si vous installez la gem mysql avec RVM, vous devez utiliser le code suivant pour l'installer.
Sudo env ARCHFLAGS="-Arch x86_64" gem install mysql
Cette méthode a fonctionné pour moi dans Leopard Server, aucune des solutions ci-dessus n’a fonctionné.