J'essaie d'obtenir un projet Rails en cours d'exécution sur ma machine locale. Lorsque j'installe le bundle
Fetching mysql2 0.3.20
Installing mysql2 0.3.20 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /Users/mac/.rvm/gems/Ruby-2.3.1/gems/mysql2-
0.3.20/ext/mysql2
/Users/mac/.rvm/rubies/Ruby-2.3.1/bin/Ruby -r ./siteconf20180707-33936-1toblx7.rb extconf.rb
checking for Ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in Ruby/thread.h... yes
checking for rb_thread_blocking_region()... no
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
-----
Using mysql_config at /usr/local/bin/mysql_config
-----
checking for mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
-----
Setting rpath to /usr/local/Cellar/mysql/8.0.11/lib
-----
creating Makefile
current directory: /Users/mac/.rvm/gems/Ruby-2.3.1/gems/mysql2-0.3.20/ext/mysql2
make "DESTDIR=" clean
current directory: /Users/mac/.rvm/gems/Ruby-2.3.1/gems/mysql2-0.3.20/ext/mysql2
make "DESTDIR="
compiling infile.c
compiling client.c
client.c:367:33: warning: implicit conversion loses integer precision: 'long' to 'unsigned int' [-Wshorten-64-to-32]
elapsed_time = end_time - start_time;
~ ~~~~~~~~~^~~~~~~~~~~~
client.c:439:3: error: use of undeclared identifier 'my_bool'
my_bool res = mysql_read_query_result(client);
^
client.c:441:19: error: use of undeclared identifier 'res'
return (void *)(res == 0 ? Qtrue : Qfalse);
^
client.c:775:3: error: use of undeclared identifier 'my_bool'
my_bool boolval;
^
client.c:806:7: error: use of undeclared identifier 'boolval'
boolval = (value == Qfalse ? 0 : 1);
^
client.c:807:17: error: use of undeclared identifier 'boolval'
retval = &boolval;
^
client.c:810:10: error: use of undeclared identifier 'MYSQL_SECURE_AUTH'; did you mean 'MYSQL_DEFAULT_AUTH'?
case MYSQL_SECURE_AUTH:
^~~~~~~~~~~~~~~~~
MYSQL_DEFAULT_AUTH
/usr/local/Cellar/mysql/8.0.11/include/mysql/mysql.h:188:3: note: 'MYSQL_DEFAULT_AUTH' declared here
MYSQL_DEFAULT_AUTH,
^
client.c:811:7: error: use of undeclared identifier 'boolval'
boolval = (value == Qfalse ? 0 : 1);
^
client.c:812:17: error: use of undeclared identifier 'boolval'
retval = &boolval;
^
client.c:843:38: error: use of undeclared identifier 'boolval'
wrapper->reconnect_enabled = boolval;
^
client.c:1165:56: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
mysql2rb = mysql2_mysql_enc_name_to_rb(charset_name, charset_name_len);
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~
client.c:1198:38: error: use of undeclared identifier 'MYSQL_SECURE_AUTH'; did you mean 'MYSQL_DEFAULT_AUTH'?
return _mysql_client_options(self, MYSQL_SECURE_AUTH, value);
^~~~~~~~~~~~~~~~~
MYSQL_DEFAULT_AUTH
/usr/local/Cellar/mysql/8.0.11/include/mysql/mysql.h:188:3: note: 'MYSQL_DEFAULT_AUTH' declared here
MYSQL_DEFAULT_AUTH,
^
2 warnings and 10 errors generated.
make: *** [client.o] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/mac/.rvm/gems/Ruby-2.3.1/gems/mysql2-0.3.20 for inspection.
Results logged to /Users/mac/.rvm/gems/Ruby-2.3.1/extensions/x86_64-darwin-17/2.3.0/mysql2-0.3.20/gem_make.out
An error occurred while installing mysql2 (0.3.20), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.20' --source 'https://rubygems.org/'` succeeds before bundling.
In Gemfile:
mysql2
Je suis ensuite les instructions et
gem install mysql2 -v '0.3.20' --source 'https://rubygems.org/'
Building native extensions. This could take a while...
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
current directory: /Users/mac/.rvm/gems/Ruby-2.3.1/gems/mysql2-0.3.20/ext/mysql2
/Users/mac/.rvm/rubies/Ruby-2.3.1/bin/Ruby -r ./siteconf20180707-34132-p3fohi.rb extconf.rb
checking for Ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in Ruby/thread.h... yes
checking for rb_thread_blocking_region()... no
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
-----
Using mysql_config at /usr/local/bin/mysql_config
-----
checking for mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
-----
Setting rpath to /usr/local/Cellar/mysql/8.0.11/lib
-----
creating Makefile
current directory: /Users/mac/.rvm/gems/Ruby-2.3.1/gems/mysql2-0.3.20/ext/mysql2
make "DESTDIR=" clean
current directory: /Users/mac/.rvm/gems/Ruby-2.3.1/gems/mysql2-0.3.20/ext/mysql2
make "DESTDIR="
compiling infile.c
compiling client.c
client.c:367:33: warning: implicit conversion loses integer precision: 'long' to 'unsigned int' [-Wshorten-64-to-32]
elapsed_time = end_time - start_time;
~ ~~~~~~~~~^~~~~~~~~~~~
client.c:439:3: error: use of undeclared identifier 'my_bool'
my_bool res = mysql_read_query_result(client);
^
client.c:441:19: error: use of undeclared identifier 'res'
return (void *)(res == 0 ? Qtrue : Qfalse);
^
client.c:775:3: error: use of undeclared identifier 'my_bool'
my_bool boolval;
^
client.c:806:7: error: use of undeclared identifier 'boolval'
boolval = (value == Qfalse ? 0 : 1);
^
client.c:807:17: error: use of undeclared identifier 'boolval'
retval = &boolval;
^
client.c:810:10: error: use of undeclared identifier 'MYSQL_SECURE_AUTH'; did you mean 'MYSQL_DEFAULT_AUTH'?
case MYSQL_SECURE_AUTH:
^~~~~~~~~~~~~~~~~
MYSQL_DEFAULT_AUTH
/usr/local/Cellar/mysql/8.0.11/include/mysql/mysql.h:188:3: note: 'MYSQL_DEFAULT_AUTH' declared here
MYSQL_DEFAULT_AUTH,
^
client.c:811:7: error: use of undeclared identifier 'boolval'
boolval = (value == Qfalse ? 0 : 1);
^
client.c:812:17: error: use of undeclared identifier 'boolval'
retval = &boolval;
^
client.c:843:38: error: use of undeclared identifier 'boolval'
wrapper->reconnect_enabled = boolval;
^
client.c:1165:56: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
mysql2rb = mysql2_mysql_enc_name_to_rb(charset_name, charset_name_len);
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~
client.c:1198:38: error: use of undeclared identifier 'MYSQL_SECURE_AUTH'; did you mean 'MYSQL_DEFAULT_AUTH'?
return _mysql_client_options(self, MYSQL_SECURE_AUTH, value);
^~~~~~~~~~~~~~~~~
MYSQL_DEFAULT_AUTH
/usr/local/Cellar/mysql/8.0.11/include/mysql/mysql.h:188:3: note: 'MYSQL_DEFAULT_AUTH' declared here
MYSQL_DEFAULT_AUTH,
^
2 warnings and 10 errors generated.
make: *** [client.o] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/mac/.rvm/gems/Ruby-2.3.1/gems/mysql2-0.3.20 for inspection.
Results logged to /Users/mac/.rvm/gems/Ruby-2.3.1/extensions/x86_64-darwin-17/2.3.0/mysql2-0.3.20/gem_make.out
J'ai essayé la solution mentionnée ici
Échec de l'installation de Ruby Gem mysql2
brew install mysql
Warning: mysql 8.0.11 is already installed and up-to-date
To reinstall 8.0.11, run `brew reinstall mysql`
et alors
gem install mysql2
Building native extensions. This could take a while...
Successfully installed mysql2-0.5.2
Parsing documentation for mysql2-0.5.2
Done installing documentation for mysql2 after 0 seconds
1 gem installed
mais quand je fais l'installation à nouveau, je reçois toujours toutes ces erreurs
étrangement si je cours
brew reinstall mysql
==> Reinstalling mysql
==> Downloading https://homebrew.bintray.com/bottles/mysql-8.0.11.high_sierra.bottle.tar.gz
Already downloaded: /Users/mac/Library/Caches/Homebrew/mysql-8.0.11.high_sierra.bottle.tar.gz
==> Pouring mysql-8.0.11.high_sierra.bottle.tar.gz
==> /usr/local/Cellar/mysql/8.0.11/bin/mysqld --initialize-insecure --user=mac --basedir=/usr/local/Cellar/mysql/8.0.11 --datadir=/usr/local/var/mysql --tmpdir=/tmp
Last 15 lines from /Users/mac/Library/Logs/Homebrew/mysql/post_install.01.mysqld:
2018-07-07 23:56:01 -0500
/usr/local/Cellar/mysql/8.0.11/bin/mysqld
--initialize-insecure
--user=mac
--basedir=/usr/local/Cellar/mysql/8.0.11
--datadir=/usr/local/var/mysql
--tmpdir=/tmp
2018-07-08T04:56:01.743929Z 0 [System] [MY-013169] [Server] /usr/local/Cellar/mysql/8.0.11/bin/mysqld (mysqld 8.0.11) initializing of server in progress as process 35410
2018-07-08T04:56:01.746039Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2018-07-08T04:56:01.746086Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-07-08T04:56:01.746293Z 0 [System] [MY-010910] [Server] /usr/local/Cellar/mysql/8.0.11/bin/mysqld: Shutdown complete (mysqld 8.0.11) Homebrew.
Warning: The post-install step did not complete successfully
You can try again using `brew postinstall mysql`
==> Caveats
We've installed your MySQL database without a root password. To secure it run:
mysql_secure_installation
MySQL is configured to only allow connections from localhost by default
To connect run:
mysql -uroot
To have launchd start mysql now and restart at login:
brew services start mysql
Or, if you don't want/need a background service you can just run:
mysql.server start
==> Summary
???? /usr/local/Cellar/mysql/8.0.11: 254 files, 232.6MB
ce qui prête à confusion et à vrai dire, je ne comprends pas à 100% et peut très bien être à l'origine du problème, mais je ne sais pas.
J'ai mis à jour la dernière version de XCode et installé les outils de développement
voici à quoi ressemble mon gemfile.lock
GEM
remote: https://rubygems.org/
specs:
actionmailer (4.2.0)
actionpack (= 4.2.0)
actionview (= 4.2.0)
activejob (= 4.2.0)
mail (~> 2.5, >= 2.5.4)
Rails-dom-testing (~> 1.0, >= 1.0.5)
actionpack (4.2.0)
actionview (= 4.2.0)
activesupport (= 4.2.0)
rack (~> 1.6.0)
rack-test (~> 0.6.2)
Rails-dom-testing (~> 1.0, >= 1.0.5)
Rails-html-sanitizer (~> 1.0, >= 1.0.1)
actionview (4.2.0)
activesupport (= 4.2.0)
builder (~> 3.1)
erubis (~> 2.7.0)
Rails-dom-testing (~> 1.0, >= 1.0.5)
Rails-html-sanitizer (~> 1.0, >= 1.0.1)
activejob (4.2.0)
activesupport (= 4.2.0)
globalid (>= 0.3.0)
activemodel (4.2.0)
activesupport (= 4.2.0)
builder (~> 3.1)
activerecord (4.2.0)
activemodel (= 4.2.0)
activesupport (= 4.2.0)
arel (~> 6.0)
activesupport (4.2.0)
i18n (~> 0.7)
json (~> 1.7, >= 1.7.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
addressable (2.4.0)
arel (6.0.3)
authority (3.1.0)
activesupport (>= 3.0.0)
rake (>= 0.8.7)
autoprefixer-Rails (6.3.6.2)
execjs
aws_cf_signer (0.1.3)
bcrypt (3.1.11)
better_errors (2.1.1)
coderay (>= 1.0.0)
erubis (>= 2.6.6)
rack (>= 0.9.0)
binding_of_caller (0.7.2)
debug_inspector (>= 0.0.1)
bootstrap-sass (3.3.6)
autoprefixer-Rails (>= 5.2.1)
sass (>= 3.3.4)
builder (3.2.2)
byebug (9.0.4)
carrierwave (0.11.2)
activemodel (>= 3.2.0)
activesupport (>= 3.2.0)
json (>= 1.7)
mime-types (>= 1.16)
mimemagic (>= 0.3.0)
celluloid (0.16.0)
timers (~> 4.0.0)
chartkick (2.0.0)
ckeditor (4.1.6)
cocaine
orm_adapter (~> 0.5.0)
climate_control (0.0.3)
activesupport (>= 3.0)
cloudinary (1.1.7)
aws_cf_signer
rest-client
cocaine (0.5.8)
climate_control (>= 0.0.3, < 1.0)
coderay (1.1.1)
coffee-Rails (4.1.1)
coffee-script (>= 2.2.0)
railties (>= 4.0.0, < 5.1.x)
coffee-script (2.4.1)
coffee-script-source
execjs
coffee-script-source (1.10.0)
concurrent-Ruby (1.0.2)
connection_pool (2.2.0)
debug_inspector (0.0.2)
devise (4.1.1)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0, < 5.1)
responders
warden (~> 1.2.3)
dotenv (2.1.1)
dotenv-Rails (2.1.1)
dotenv (= 2.1.1)
railties (>= 4.0, < 5.1)
erubis (2.7.0)
execjs (2.7.0)
faraday (0.11.0)
multipart-post (>= 1.2, < 3)
font-awesome-Rails (4.6.3.0)
railties (>= 3.2, < 5.1)
friendly_id (5.1.0)
activerecord (>= 4.0.0)
globalid (0.3.6)
activesupport (>= 4.1.0)
groupdate (3.0.0)
activesupport (>= 3)
hashie (3.5.5)
hitimes (1.2.4)
i18n (0.7.0)
ice_cube (0.11.1)
jbuilder (2.4.1)
activesupport (>= 3.0.0, < 5.1)
multi_json (~> 1.2)
jquery-Rails (4.1.1)
Rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
jquery-ui-Rails (4.2.1)
railties (>= 3.2.16)
json (1.8.3)
jwt (1.5.6)
kaminari (0.16.3)
actionpack (>= 3.0.0)
activesupport (>= 3.0.0)
libv8 (3.16.14.15)
loofah (2.0.3)
nokogiri (>= 1.5.9)
mail (2.6.4)
mime-types (>= 1.16, < 4)
meta-tags (2.1.0)
actionpack (>= 3.0.0)
mime-types (3.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2016.0521)
mimemagic (0.3.1)
mini_magick (4.5.1)
mini_portile2 (2.0.0)
minitest (5.9.0)
multi_json (1.12.1)
multi_xml (0.6.0)
multipart-post (2.0.0)
mysql2 (0.3.20)
newrelic_rpm (3.15.2.317)
nokogiri (1.6.7.2)
mini_portile2 (~> 2.0.0.rc2)
oauth2 (1.3.1)
faraday (>= 0.8, < 0.12)
jwt (~> 1.0)
multi_json (~> 1.3)
multi_xml (~> 0.5)
rack (>= 1.2, < 3)
omniauth (1.6.1)
hashie (>= 3.4.6, < 3.6.0)
rack (>= 1.6.2, < 3)
omniauth-facebook (4.0.0)
omniauth-oauth2 (~> 1.2)
omniauth-oauth2 (1.4.0)
oauth2 (~> 1.0)
omniauth (~> 1.2)
orm_adapter (0.5.0)
polyamorous (1.3.0)
activerecord (>= 3.0)
quiet_assets (1.1.0)
railties (>= 3.1, < 5.0)
rack (1.6.5)
rack-canonical-Host (0.2.2)
addressable (> 0, < 3)
rack (>= 1.0.0, < 3)
rack-protection (1.5.3)
rack
rack-test (0.6.3)
rack (>= 1.0)
Rails (4.2.0)
actionmailer (= 4.2.0)
actionpack (= 4.2.0)
actionview (= 4.2.0)
activejob (= 4.2.0)
activemodel (= 4.2.0)
activerecord (= 4.2.0)
activesupport (= 4.2.0)
bundler (>= 1.3.0, < 2.0)
railties (= 4.2.0)
sprockets-Rails
Rails-deprecated_sanitizer (1.0.3)
activesupport (>= 4.2.0.alpha)
Rails-dom-testing (1.0.7)
activesupport (>= 4.2.0.beta, < 5.0)
nokogiri (~> 1.6.0)
Rails-deprecated_sanitizer (>= 1.0.1)
Rails-html-sanitizer (1.0.3)
loofah (~> 2.0)
Rails-i18n (4.0.8)
i18n (~> 0.7)
railties (~> 4.0)
Rails_12factor (0.0.3)
Rails_serve_static_assets
Rails_stdout_logging
Rails_serve_static_assets (0.0.5)
Rails_stdout_logging (0.0.5)
railties (4.2.0)
actionpack (= 4.2.0)
activesupport (= 4.2.0)
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
rake (11.1.2)
ranked-model (0.4.0)
activerecord (>= 3.1.12)
ransack (1.7.0)
actionpack (>= 3.0)
activerecord (>= 3.0)
activesupport (>= 3.0)
i18n
polyamorous (~> 1.2)
rdoc (4.2.2)
json (~> 1.4)
redis (3.3.0)
redis-namespace (1.5.2)
redis (~> 3.0, >= 3.0.4)
ref (2.0.0)
responders (2.2.0)
railties (>= 4.2.0, < 5.1)
rest-client (1.6.7)
mime-types (>= 1.16)
sass (3.4.22)
sass-Rails (5.0.4)
railties (>= 4.0.0, < 5.0)
sass (~> 3.1)
sprockets (>= 2.8, < 4.0)
sprockets-Rails (>= 2.0, < 4.0)
tilt (>= 1.1, < 3)
sdoc (0.4.1)
json (~> 1.7, >= 1.7.7)
rdoc (~> 4.0)
sidekiq (3.4.2)
celluloid (~> 0.16.0)
connection_pool (~> 2.2, >= 2.2.0)
json (~> 1.0)
redis (~> 3.2, >= 3.2.1)
redis-namespace (~> 1.5, >= 1.5.2)
sidetiq (0.6.3)
celluloid (>= 0.14.1)
ice_cube (= 0.11.1)
sidekiq (>= 3.0.0)
sinatra (1.4.7)
rack (~> 1.5)
rack-protection (~> 1.4)
tilt (>= 1.3, < 3)
slim (3.0.7)
temple (~> 0.7.6)
tilt (>= 1.3.3, < 2.1)
slim-Rails (3.0.1)
actionmailer (>= 3.1, < 5.0)
actionpack (>= 3.1, < 5.0)
activesupport (>= 3.1, < 5.0)
railties (>= 3.1, < 5.0)
slim (~> 3.0)
spring (1.7.1)
sprockets (3.6.0)
concurrent-Ruby (~> 1.0)
rack (> 1, < 3)
sprockets-Rails (3.0.4)
actionpack (>= 4.0)
activesupport (>= 4.0)
sprockets (>= 3.0.0)
temple (0.7.7)
therubyracer (0.12.2)
libv8 (~> 3.16.14.0)
ref
thor (0.19.1)
thread_safe (0.3.5)
tilt (2.0.4)
timers (4.0.4)
hitimes
tzinfo (1.2.2)
thread_safe (~> 0.1)
uglifier (3.0.0)
execjs (>= 0.3.0, < 3)
warden (1.2.6)
rack (>= 1.0)
web-console (2.3.0)
activemodel (>= 4.0)
binding_of_caller (>= 0.7.2)
railties (>= 4.0)
sprockets-Rails (>= 2.0, < 4.0)
PLATFORMS
Ruby
DEPENDENCIES
authority (~> 3.0)
bcrypt (~> 3.1.7)
better_errors
bootstrap-sass (~> 3.3.6)
byebug
carrierwave
chartkick
ckeditor
cloudinary
coffee-Rails (~> 4.1.0)
devise
dotenv-Rails
font-awesome-Rails
friendly_id
groupdate
jbuilder (~> 2.0)
jquery-Rails
jquery-ui-Rails (~> 4.2.1)
kaminari (~> 0.15)
meta-tags
mini_magick
mysql2 (~> 0.3.20)
newrelic_rpm
omniauth-facebook
quiet_assets
rack-canonical-Host
Rails (= 4.2.0)
Rails-i18n
Rails_12factor
ranked-model
ransack
sass-Rails (~> 5.0)
sdoc (~> 0.4.0)
sidekiq (~> 3.4.2)
sidetiq (~> 0.6)
sinatra (>= 1.3.0)
slim-Rails
spring
therubyracer
uglifier (>= 1.3.0)
web-console (~> 2.0)
Ruby VERSION
Ruby 2.3.1p112
BUNDLED WITH
1.12.5
J'ai également essayé de donner des commandes plus spécifiques comme cette réponse recommandée
https://stackoverflow.com/a/32869742/823978
mais je reçois toujours les mêmes erreurs.
gem install mysql2 -v '0.3.20' -- --with-mysql-config=/usr/local/Cellar/mysql/8.0.11/bin/mysql_config
Building native extensions with: '--with-mysql-config=/usr/local/Cellar/mysql/8.0.11/bin/mysql_config'
This could take a while...
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
current directory: /Users/mac/.rvm/gems/Ruby-2.3.1/gems/mysql2-0.3.20/ext/mysql2
/Users/mac/.rvm/rubies/Ruby-2.3.1/bin/Ruby -r ./siteconf20180708-38248-vd681p.rb extconf.rb --with-mysql-config=/usr/local/Cellar/mysql/8.0.11/bin/mysql_config
checking for Ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in Ruby/thread.h... yes
checking for rb_thread_blocking_region()... no
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
-----
Using mysql_config at /usr/local/Cellar/mysql/8.0.11/bin/mysql_config
-----
checking for mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
-----
Setting rpath to /usr/local/Cellar/mysql/8.0.11/lib
-----
creating Makefile
current directory: /Users/mac/.rvm/gems/Ruby-2.3.1/gems/mysql2-0.3.20/ext/mysql2
make "DESTDIR=" clean
current directory: /Users/mac/.rvm/gems/Ruby-2.3.1/gems/mysql2-0.3.20/ext/mysql2
make "DESTDIR="
compiling infile.c
compiling client.c
client.c:367:33: warning: implicit conversion loses integer precision: 'long' to 'unsigned int' [-Wshorten-64-to-32]
elapsed_time = end_time - start_time;
~ ~~~~~~~~~^~~~~~~~~~~~
client.c:439:3: error: use of undeclared identifier 'my_bool'
my_bool res = mysql_read_query_result(client);
^
client.c:441:19: error: use of undeclared identifier 'res'
return (void *)(res == 0 ? Qtrue : Qfalse);
^
client.c:775:3: error: use of undeclared identifier 'my_bool'
my_bool boolval;
^
client.c:806:7: error: use of undeclared identifier 'boolval'
boolval = (value == Qfalse ? 0 : 1);
^
client.c:807:17: error: use of undeclared identifier 'boolval'
retval = &boolval;
^
client.c:810:10: error: use of undeclared identifier 'MYSQL_SECURE_AUTH'; did you mean 'MYSQL_DEFAULT_AUTH'?
case MYSQL_SECURE_AUTH:
^~~~~~~~~~~~~~~~~
MYSQL_DEFAULT_AUTH
/usr/local/Cellar/mysql/8.0.11/include/mysql/mysql.h:188:3: note: 'MYSQL_DEFAULT_AUTH' declared here
MYSQL_DEFAULT_AUTH,
^
client.c:811:7: error: use of undeclared identifier 'boolval'
boolval = (value == Qfalse ? 0 : 1);
^
client.c:812:17: error: use of undeclared identifier 'boolval'
retval = &boolval;
^
client.c:843:38: error: use of undeclared identifier 'boolval'
wrapper->reconnect_enabled = boolval;
^
client.c:1165:56: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
mysql2rb = mysql2_mysql_enc_name_to_rb(charset_name, charset_name_len);
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~
client.c:1198:38: error: use of undeclared identifier 'MYSQL_SECURE_AUTH'; did you mean 'MYSQL_DEFAULT_AUTH'?
return _mysql_client_options(self, MYSQL_SECURE_AUTH, value);
^~~~~~~~~~~~~~~~~
MYSQL_DEFAULT_AUTH
/usr/local/Cellar/mysql/8.0.11/include/mysql/mysql.h:188:3: note: 'MYSQL_DEFAULT_AUTH' declared here
MYSQL_DEFAULT_AUTH,
^
2 warnings and 10 errors generated.
make: *** [client.o] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/mac/.rvm/gems/Ruby-2.3.1/gems/mysql2-0.3.20 for inspection.
Results logged to /Users/mac/.rvm/gems/Ruby-2.3.1/extensions/x86_64-darwin-17/2.3.0/mysql2-0.3.20/gem_make.out
Voici le journal de mon fichier mysql_config
mysql_config
Usage: /usr/local/bin/mysql_config [OPTIONS]
Compiler: Clang 9.1.0.9020039
Options:
--cflags [-I/usr/local/Cellar/mysql/8.0.11/include/mysql ]
--cxxflags [-I/usr/local/Cellar/mysql/8.0.11/include/mysql ]
--include [-I/usr/local/Cellar/mysql/8.0.11/include/mysql]
--libs [-L/usr/local/Cellar/mysql/8.0.11/lib -lmysqlclient -lssl -lcrypto]
--libs_r [-L/usr/local/Cellar/mysql/8.0.11/lib -lmysqlclient -lssl -lcrypto]
--plugindir [/usr/local/Cellar/mysql/8.0.11/lib/plugin]
--socket [/tmp/mysql.sock]
--port [0]
--version [8.0.11]
--variable=VAR VAR is one of:
pkgincludedir [/usr/local/Cellar/mysql/8.0.11/include/mysql]
pkglibdir [/usr/local/Cellar/mysql/8.0.11/lib]
plugindir [/usr/local/Cellar/mysql/8.0.11/lib/plugin]
Je suis sur un Mac High Sierra 10.13.4
J'adorerais tout conseil que je pourrais y donner car cela me rend fou. Veuillez me faire part de toute autre information que je pourrais fournir pour poser une meilleure question.
Merci d'avance
Je viens de rencontrer ce problème aujourd'hui. mysql a été mis à jour récemment, donc ce qui a fonctionné pour moi était:
brew install [email protected]
brew link [email protected] --force
bundle install
Alternativement, je n'ai pas essayé cette solution, mais elle semble avoir fonctionné pour d'autres personnes.
J'ai rencontré le même problème lors de l'installation de mysql2-0.3.21 sur Mac Pro.
La solution mentionnée ci-dessous a fonctionné pour moi (exécutez les 3 commandes mentionnées ci-dessous dans le terminal pointant vers votre dossier de projet):
brew install mysql
gem install mysql2 -v '0.3.21' -- --srcdir=/usr/local/mysql/include
bundle install
Mon MacBook Pro avait un disque tombé en panne lors de la mise à niveau vers MacOS Mojave (pas joli!), J'ai donc dû rétablir tous mes projets de code par la suite.
Un projet particulier s'est avéré extrêmement difficile à mettre en place et à exécuter et j'ai passé plusieurs heures aujourd'hui à chercher un moyen de faire fonctionner mysql2-0.3.21 pour un ancien projet RoR; Ruby version 2.1.1p76 avec Rails 4.1.1.
Enfin, j'ai réussi en suivant ces conseils: https://github.com/brianmario/mysql2/issues/1010#issuecomment-460257986
J'ai fait les étapes suivantes:
Commencez par supprimer toutes les versions installées de mysql2 de votre jeu de gemmes:
gem uninstall mysql2
Ensuite, installez MySQL 5.6, j'ai déjà MySQL 8.0.17 installé, donc 5.6 est installé comme un fût uniquement, ce qui est bien:
brew install [email protected]
Ensuite, installez mysql2 version 0.3.21 avec la commande suivante:
gem install mysql2 -v 0.3.21 -- --with-mysql-config=/usr/local/Cellar/[email protected]/5.6.42/bin/mysql_config --with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include
La partie OpenSSL peut probablement être laissée de côté et vous pouvez changer le numéro de version de mysql2 en fonction de la version de Rails votre projet est en cours d'exécution.
Après les étapes ci-dessus, j'ai pu redémarrer la console Rails et interroger la base de données:
Loading development environment (Rails 4.1.1)
2.1.1 :001 > User.count
(18.7ms) SELECT COUNT(*) FROM `users` WHERE `users`.`deleted_at` IS NULL
=> 1222
2.1.1 :002 >
Cela a fonctionné pour moi - macOS Catalina
brew uninstall mysql
gem uninstall mysql2
brew install [email protected]
brew link [email protected] --force
gem install mysql2 -v '0.3.21'
# Gemfile
gem 'mysql2', '0.3.21'
bundle update mysql2