質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

2046閲覧

mysql2のインストール方法

Ryeat

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/07/05 17:38

前提・実現したいこと

railsファイルのgemfileで指定したmysql2-0.5.3をインストールしたい。
エラーの原因や解決策があればご教授いただきたいです。

###機種
Macbook M1

発生している問題・エラーメッセージ

エラーメッセージ Building native extensions. This could take a while... ERROR: Error installing mysql2: ERROR: Failed to build gem native extension. current directory: /Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/mysql2-0.5.3/ext/mysql2 /Users/ユーザ名/.rbenv/versions/3.0.0/bin/ruby -I /Users/ ユーザ名 /.rbenv/versions/3.0.0/lib/ruby/3.0.0 -r ./siteconf20210706-95195-q61zek.rb extconf.rb checking for rb_absint_size()... no checking for rb_absint_singlebit_p()... no checking for rb_wait_for_single_fd()... no ----- Using mysql_config at /opt/homebrew/bin/mysql_config ----- checking for mysql.h... yes checking for errmsg.h... yes checking for SSL_MODE_DISABLED in mysql.h... yes checking for SSL_MODE_PREFERRED in mysql.h... yes checking for SSL_MODE_REQUIRED in mysql.h... yes checking for SSL_MODE_VERIFY_CA in mysql.h... yes checking for SSL_MODE_VERIFY_IDENTITY in mysql.h... yes checking for MYSQL.net.vio in mysql.h... yes checking for MYSQL.net.pvio in mysql.h... no checking for MYSQL_ENABLE_CLEARTEXT_PLUGIN in mysql.h... yes checking for SERVER_QUERY_NO_GOOD_INDEX_USED in mysql.h... yes checking for SERVER_QUERY_NO_INDEX_USED in mysql.h... yes checking for SERVER_QUERY_WAS_SLOW in mysql.h... yes checking for MYSQL_OPTION_MULTI_STATEMENTS_ON in mysql.h... yes checking for MYSQL_OPTION_MULTI_STATEMENTS_OFF in mysql.h... yes checking for my_bool in mysql.h... no ----- Don't know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load ----- ----- Setting libpath to /opt/homebrew/Cellar/mysql/8.0.25_1/lib ----- creating Makefile current directory: /Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/mysql2-0.5.3/ext/mysql2 make "DESTDIR=" clean current directory: /Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/mysql2-0.5.3/ext/mysql2 make "DESTDIR=" compiling client.c In file included from client.c:13: ./wait_for_single_fd.h:32:10: error: implicit declaration of function 'rb_thread_select' is invalid in C99 [-Werror,-Wimplicit-function-declaration] return rb_thread_select(fd + 1, rfds, wfds, efds, tvp); ^ client.c:787:14: warning: incompatible function pointer types passing 'VALUE (void *)' (aka 'unsigned long (void *)') to parameter of type 'VALUE (*)(VALUE)' (aka 'unsigned long (*)(unsigned long)') [-Wincompatible-function-pointer-types] rb_rescue2(do_send_query, (VALUE)&args, disconnect_and_raise, self, rb_eException, (VALUE)0); ^~~~~~~~~~~~~ /Users/ユーザ名/.rbenv/versions/3.0.0/include/ruby-3.0.0/ruby/internal/iterator.h:51:25: note: passing argument to parameter here VALUE rb_rescue2(VALUE(*)(VALUE),VALUE,VALUE(*)(VALUE,VALUE),VALUE,...); ^ client.c:795:16: warning: incompatible function pointer types passing 'VALUE (void *)' (aka 'unsigned long (void *)') to parameter of type 'VALUE (*)(VALUE)' (aka 'unsigned long (*)(unsigned long)') [-Wincompatible-function-pointer-types] rb_rescue2(do_query, (VALUE)&async_args, disconnect_and_raise, self, rb_eException, (VALUE)0); ^~~~~~~~ /Users/ユーザ名/.rbenv/versions/3.0.0/include/ruby-3.0.0/ruby/internal/iterator.h:51:25: note: passing argument to parameter here VALUE rb_rescue2(VALUE(*)(VALUE),VALUE,VALUE(*)(VALUE,VALUE),VALUE,...); ^ 2 warnings and 1 error generated. make: *** [client.o] Error 1 make failed, exit code 2 Gem files will remain installed in /Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/mysql2-0.5.3 for inspection. Results logged to /Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/extensions/arm64-darwin-20/3.0.0/mysql2-0.5.3/gem_make.out

該当のソースコード

ruby on rails

試したこと

1つ目
$ brew info openssl
$ bundle config --local build.mysql2 "--with-cppflags=-I/usr/local/opt/openssl@1.1/include"
$ bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl@1.1/lib"
$ bundle
2つ目
gem install mysql2 -v '0.5.3' --source 'https://rubygems.org/'
(こちらを実行すると上記と同様のエラーが出ます。)
###1つ目を試して出るエラー
Installing mysql2 0.5.3 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory:
/Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/mysql2-0.5.3/ext/mysql2
/Users/ユーザ名/.rbenv/versions/3.0.0/bin/ruby -I
/Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/3.0.0 -r
./siteconf20210706-95490-fem4hz.rb extconf.rb
--with-opt-lib=/usr/local/opt/openssl/lib
--with-opt-include=-I/usr/local/opt/openssl/include
checking for rb_absint_size()... no
checking for rb_absint_singlebit_p()... no
checking for rb_wait_for_single_fd()... no
Using mysql_config at /opt/homebrew/bin/mysql_config
checking for mysql.h... yes
checking for errmsg.h... yes
checking for SSL_MODE_DISABLED in mysql.h... yes
checking for SSL_MODE_PREFERRED in mysql.h... yes
checking for SSL_MODE_REQUIRED in mysql.h... yes
checking for SSL_MODE_VERIFY_CA in mysql.h... yes
checking for SSL_MODE_VERIFY_IDENTITY in mysql.h... yes
checking for MYSQL.net.vio in mysql.h... yes
checking for MYSQL.net.pvio in mysql.h... no
checking for MYSQL_ENABLE_CLEARTEXT_PLUGIN in mysql.h... yes
checking for SERVER_QUERY_NO_GOOD_INDEX_USED in mysql.h... yes
checking for SERVER_QUERY_NO_INDEX_USED in mysql.h... yes
checking for SERVER_QUERY_WAS_SLOW in mysql.h... yes
checking for MYSQL_OPTION_MULTI_STATEMENTS_ON in mysql.h... yes
checking for MYSQL_OPTION_MULTI_STATEMENTS_OFF in mysql.h... yes
checking for my_bool in mysql.h... no
Don't know how to set rpath on your system, if MySQL libraries are not in path
mysql2 may not load
Setting libpath to /opt/homebrew/Cellar/mysql/8.0.25_1/lib
creating Makefile
current directory:
/Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/mysql2-0.5.3/ext/mysql2
make "DESTDIR=" clean
current directory:
/Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/mysql2-0.5.3/ext/mysql2
make "DESTDIR="
compiling client.c
In file included from client.c:13:
./wait_for_single_fd.h:32:10: error: implicit declaration of function
'rb_thread_select' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
return rb_thread_select(fd + 1, rfds, wfds, efds, tvp);

client.c:787:14: warning: incompatible function pointer types passing 'VALUE
(void )' (aka 'unsigned long (void )') to parameter of type 'VALUE ()(VALUE)'
(aka 'unsigned long (
)(unsigned long)') [-Wincompatible-function-pointer-types]
rb_rescue2(do_send_query, (VALUE)&args, disconnect_and_raise, self,
rb_eException, (VALUE)0);

/Users/ユーザ名/.rbenv/versions/3.0.0/include/ruby-3.0.0/ruby/internal/iterator.h:51:25:
note: passing argument to parameter here
VALUE rb_rescue2(VALUE()(VALUE),VALUE,VALUE()(VALUE,VALUE),VALUE,...);

client.c:795:16: warning: incompatible function pointer types passing 'VALUE
(void )' (aka 'unsigned long (void )') to parameter of type 'VALUE ()(VALUE)'
(aka 'unsigned long (
)(unsigned long)') [-Wincompatible-function-pointer-types]
rb_rescue2(do_query, (VALUE)&async_args, disconnect_and_raise, self,
rb_eException, (VALUE)0);

/Users/ユーザ名/.rbenv/versions/3.0.0/include/ruby-3.0.0/ruby/internal/iterator.h:51:25:
note: passing argument to parameter here
VALUE rb_rescue2(VALUE()(VALUE),VALUE,VALUE()(VALUE,VALUE),VALUE,...);

2 warnings and 1 error generated.
make: *** [client.o] Error 1

make failed, exit code 2

Gem files will remain installed in
/Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/mysql2-0.5.3
for inspection.
Results logged to
/Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/extensions/arm64-darwin-20/3.0.0/mysql2-0.5.3/gem_make.out

An error occurred while installing mysql2 (0.5.3), and Bundler cannot
continue.
Make sure that gem install mysql2 -v '0.5.3' --source 'https://rubygems.org/'
succeeds before bundling.

In Gemfile:
mysql2

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Results logged to /Users/ユーザ名/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/extensions/arm64-darwin-20/3.0.0/mysql2-0.5.3/gem_make.out

の最後に
なぜ失敗したか
どう対処したらよいか
が書かれているかと思うので、まず読んでみましょう

投稿2021/07/06 02:34

winterboum

総合スコア23329

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問