web-dev-qa-db-fra.com

Installation de mysql2 gem pour Ruby on Rails avec Mac OSX 10.6)

J'ai un problème pour installer la gemme mysql2.

Cela arrive quand je fais gem install mysql2:

Marks-MacBook-Pro:~ Mark$ gem install mysql2
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
ERROR: Failed to build gem native extension.

/Users/useruser/.rvm/rubies/Ruby-1.9.2-p136/bin/Ruby extconf.rb
checking for rb_thread_blocking_region()... yes
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
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

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=/Users/useruser/.rvm/rubies/Ruby-1.9.2-p136/bin/Ruby
    --with-mysql-config
    --without-mysql-config
    --with-mysql-dir
    --without-mysql-dir
    --with-mysql-include
    --without-mysql-include=${mysql-dir}/include
    --with-mysql-lib
    --without-mysql-lib=${mysql-dir}/lib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-mlib
    --without-mlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-zlib
    --without-zlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-socketlib
    --without-socketlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-nsllib
    --without-nsllib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-mygcclib
    --without-mygcclib
    --with-mysqlclientlib
    --without-mysqlclientlib


Gem files will remain installed in /Users/useruser/.rvm/gems/Ruby-1.9.2-p136/gems/mysql2-0.2.6 for inspection.
Results logged to /Users/useruser/.rvm/gems/Ruby-1.9.2-p136/gems/mysql2-0.2.6/ext/mysql2/gem_make.out

Aussi quand j'utilise Rails server cela arrive:

Could not find gem 'mysql2 (>= 0, runtime)' in any of the gem sources listed in your Gemfile.
29
Maze

Il semble qu'il ne trouve pas la bibliothèque MySQL. Avez-vous installé MySQL?
Essayez de l'installer via homebrew :

brew install mysql

ou installez-le via macports ou fink ou ce que vous préférez, puis réessayez avec:

gem install mysql2
50
ALoR

Cette commande a fonctionné pour moi:

gem install mysql2 -- --srcdir=/usr/local/mysql/include
38
Sushma Satish

La commande suivante a fonctionné pour moi avec succès.

x.x.x = version de mysql2 que vous souhaitez installer.

gem install mysql2 -v 'x.x.x' -- --srcdir=/usr/local/mysql/include
23
Aamir

Je n'ai pas besoin de MySQL sur Mac OS X, car j'ai installé MySQL sur Vagrant box. Par conséquent, je viens d'installer mysql-connector-c.

brew install mysql-connector-c
gem install mysql2
17
Igor Shubovych

Si vous avez utilisé homebrew pour installer mysql, brew install mysql, cela a fonctionné pour moi:

gem install mysql2 -v 'x.x.x' -- --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config

x.x.x = version de la gemme mysql2 que vous souhaitez installer
y.y.y = la version de mysql que vous avez installée ls /usr/local/Cellar/mysql pour le trouver.

pour obtenir la version de mysql

brew info mysql                                                                                                                                                                                                     
mysql: stable 5.7.19 (bottled)
               ...
/usr/local/Cellar/mysql/5.7.19 (322 files, 233MB) *

               ...

alors si vous voulez installer avec bundle:

bundle config build.mysql --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config
4
aruanoc

Ce qui suit a fonctionné pour moi

brew install mysql 
brew install mysql-connector-c
gem install mysql2
4
Mayank Jain

Vous devrez spécifier quelques variables d'environnement supplémentaires pour installer cette gemme sur l'architecture 64 bits pour Mac OSX 10.6:

env ARCHFLAGS="-Arch x86_64" gem install mysql2

Si vous utilisez rvm, vous pouvez l'ajouter comme option par défaut dans le fichier ~/.rvmrc:

rvm_archflags="-Arch x86_64"
3
Pan Thomakos

J'ai eu exactement le même problème et les mêmes erreurs lors de l'installation de mysql2. Je pensais que mon installation Mamp de MySQL fonctionnerait bien et j'ai passé quelques heures à jouer avec les chemins pour que cela fonctionne - pas de succès.

Enfin, j'ai trouvé ce post d'ALoR et installé une nouvelle version via homebrew - cependant - assurez-vous de suivre TOUTES les instructions de homebrew! J'ai raté quelques étapes et perdu une autre heure à rechercher ce problème - voici ces instructions: https://stackoverflow.com/a/11061487/1241271

Une fois MySQL installé avec succès, j'ai exécuté: Sudo gem install mysql2 Et ça a fonctionné comme un charme.

J'espère que cela aide quelqu'un à perdre plusieurs heures parce qu'il a négligé de lire les documents (erreur newb).

1
yellowaj

Je sais que cela a été répondu plusieurs fois cependant, voici ce qui fonctionne pour moi: 20 mai 2019 OSX Mojave 10.14.4 MySQL Ver 14.14 Distrib 5.7.24, pour osx10.14 (x86_64) en utilisant le wrapper EditLine Ruby 2.5.0p0 (2017-12-25 révision 61468) [x86_64-darwin17] Rails 5.2.1

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/
gem install mysql2 -- --with-mysql-config=/usr/local/Cellar/mysql\@5.7/5.7.24/bin/mysql_config

changez "/usr/local/Cellar/[email protected]/5.7.24/bin/mysql_config" en quel que soit votre chemin valide actuel depuis "/ usr/local/Cellar/mysql"

J'espère que cela t'aides!

0
CrypTech Studios

Assurez-vous que openssl est installé sur Mac via Homebrew.

brew install openssl

Install mysql2 gem.

gem install mysql2 -v '0.5.2' -- --with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/i
0
BMA88

J'ai eu le même problème après la mise à niveau vers Catalina (10.15.x)

Mon Gemfile.lock a défini mysql2-0.3.20, que je n'ai pas pu installer. Mais cela a fonctionné, lorsque je l'ai mis à niveau vers mysql2-0.5.2

gem update mysql2 -- --srcdir=/usr/local/include/mysql/

Assurez-vous que vous avez installé mysql avec brew.

brew install mysql
brew link mysql                                                                                                               

(Liaison /usr/local/Cellar/mysql/8.0.18 ... 95 liens symboliques créés)

Cependant, après cela, le gem mysql2 a été installé, mais la mise à jour du bundle mysql2 n'a pas fonctionné.

Mais cette autre réponse m'a aidé https://stackoverflow.com/a/39628463/110214

bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include"

bundle update mysql2
0