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.
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
Cette commande a fonctionné pour moi:
gem install mysql2 -- --srcdir=/usr/local/mysql/include
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
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
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
Ce qui suit a fonctionné pour moi
brew install mysql
brew install mysql-connector-c
gem install mysql2
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"
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).
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!
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
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