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

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

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

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

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

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

Q&A

2回答

4052閲覧

mysql2 のインストールでコケる(未解決です)

Tsuyoponpon

総合スコア33

Ruby on Rails 5

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

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

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

1グッド

0クリップ

投稿2019/10/17 08:07

編集2019/10/17 13:39

タイトルにもありますが,mysql2をGemfileに記載し、「bundle install」をかけた際、以下のようなエラーが発生しました。ググりまくったのですが解決できなかったため、質問をさせていただきました。以下には現在の状況や考えられる原因を記載しますので、解決策をご存知の方はご指導いただけますと幸いです。

###開発環境
OS MacOsX
rails: 5.1.4
ruby: 2.4.3

発生しているエラー

terminal

1... 2Gem::Ext::BuildError: ERROR: Failed to build gem native extension. 3... 4Don't know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load 5... 6result.c:326:40: warning: incompatible pointer types assigning to 'my_bool *' (aka 'char *') from 'bool *' [-Wincompatible-pointer-types] 7 wrapper->result_buffers[i].is_null = &wrapper->is_null[i]; 8 ^ ~~~~~~~~~~~~~~~~~~~~ 9result.c:328:40: warning: incompatible pointer types assigning to 'my_bool *' (aka 'char *') from 'bool *' [-Wincompatible-pointer-types] 10 wrapper->result_buffers[i].error = &wrapper->error[i]; 11... 122 warnings generated. 13compiling statement.c 14linking shared-object mysql2/mysql2.bundle 15ld: library not found for -limported_openssl 16clang: error: linker command failed with exit code 1 (use -v to see invocation) 17... 18An error occurred while installing mysql2 (0.4.10), and Bundler cannot continue. 19Make sure that `gem install mysql2 -v '0.4.10' --source 'https://rubygems.org/'` succeeds before bundling.

考えられる原因

エラー内容通りに、下のコマンドで確認したところ

terminal

1gem install mysql2 -v '0.4.10' --source 'https://rubygems.org/'

結局同じエラーが発生

terminal

1... 22 warnings generated. 3compiling statement.c 4linking shared-object mysql2/mysql2.bundle 5ld: library not found for -limported_openssl 6clang: error: linker command failed with exit code 1 (use -v to see invocation)

次は、**「ld: library not found for -limported_openssl」**の文言から、opensslがあるか確認しました。

terminal

1$ openssl version 2LibreSSL 2.6.5

入ってました。。
さらにググってみると、こういう時はパスを追加するようなので、

terminal

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

追記

Opensslのパッケージをインストールしてみました。

terminal

1$ openssl version 2OpenSSL 1.0.2t 10 Sep 2019 3 4$ which openssl 5/usr/local/opt/openssl/bin/openssl 6 7$ brew info openssl 8... 9For compilers to find openssl you may need to set: 10export LDFLAGS="-L/usr/local/opt/openssl/lib" 11export CPPFLAGS="-I/usr/local/opt/openssl/include" 12 13#パスを通す 14$ bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include"

追記内容を実行したのですが、エラー内容は未だに変わりません。
もしかすると、パスの通し方が間違っているのでしょうか?

解決策をご存知の方がおられましたら、ご教授いただけますと幸いです。

ryuii👍を押しています

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

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

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

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

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

yoorwm

2019/10/17 08:12

> bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include" この部分、パスなんで実際に /usr/local/opt/openssl/include があるのか調べてみてください 無かったらたぶん、opensslの開発用パッケージ一式が無いという事なんで、インストールすると解決すると思います (ディストリビューション毎に違うので、プラットフォームの情報を追記するといいかと思います)
ryuii

2019/10/17 08:15

実際にコマンドを実行している、開発用OSはなんでしょうか?
guest

回答2

0

以下のコマンドでmysql@5.6 のブランチを切り替えることにより問題を回避できると思われます。
mysql2 0.4.10で発生している不具合らしく MySQL 5.6.46 から MySQL 5.6.43 に切り替えることで回避できそうです。

$ brew uninstall mysql@5.6 $ cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core $ git checkout f171f1c746db01c283aa137cb24248fbb8eb7a18 Formula/mysql@5.6.rb $ brew install mysql@5.6

参考
https://github.com/brianmario/mysql2/issues/1074#issuecomment-542993746

投稿2019/10/19 05:29

fkm_y

総合スコア36

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

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

fkm_y

2019/10/19 09:54

mysql5.6がインストールされている前提のコメントをしてしまいましたが、利用しているMySQLのバージョンはいくつでしょうか? brewで指定せずにインストールしている場合、MySQL8がインストールされていそうではあるのですが…
KKKOOOTTT

2019/10/19 12:18 編集

ありがとうございます。 私も同じ内容で悩んでおり、一通り実行しましたが、下記コマンドがうまくいきません。 ```git checkout f171f1c746db01c283aa137cb24248fbb8eb7a18 Formula/mysql@5.6.rb``` 参考URL: https://github.com/brianmario/mysql2/issues/1074#issuecomment-542993746 でも同じ問題が発生しており、解決策が記載されているのですが、具体的にどのようなコマンドを実行していけば良いでしょうか? 教えていただけたら幸いです。よろしくお願いいたします。 -- 参考解決策 -- git checkout f171f1c746db01c283aa137cb24248fbb8eb7a18 Formula/mysql@5.6.rb didn't work for me. I simply replaced /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/mysql@5.6.rb with this version: https://github.com/Homebrew/homebrew-core/blob/f171f1c746db01c283aa137cb24248fbb8eb7a18/Formula/mysql%405.6.rb
fkm_y

2019/10/19 12:40

@KKKOOOTTT issueにもコメントありましたが `git checkout` が正常に機能しないことがあるようですね。 `git checkout`した後に何か表示はされていますでしょうか? またはブランチが正常に切り替わっていない状態を確認されたのでしょうか。
KKKOOOTTT

2019/10/19 12:53

@fkm_y ご回答ありがとうございます。 ```git checkout f171f1c746db01c283aa137cb24248fbb8eb7a18 Formula/mysql@5.6.rb``` に対して以下が表示されます。 fatal: reference is not a tree: f171f1c746db01c283aa137cb24248fbb8eb7a18
fkm_y

2019/10/19 13:20

@KKKOOOTTT なるほど、ありがとうございます。 該当のブランチがないようですね。 1度 brew install を実行してみるのはいかがでしょうか? ``` $ brew install mysql@5.6 $ brew uninstall mysql@5.6 $ cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core $ git checkout f171f1c746db01c283aa137cb24248fbb8eb7a18 Formula/mysql@5.6.rb $ brew install mysql@5.6 ``` また他の方法としては `/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/mysql@5.6.rb` の中身を https://github.com/Homebrew/homebrew-core/blob/f171f1c746db01c283aa137cb24248fbb8eb7a18/Formula/mysql%405.6.rb に置き換える方法もあるようですね。
KKKOOOTTT

2019/10/19 15:22

@fkm_y 何度もありがとうございます。 書いていただいたコードを一通り実行しましたが、 ```git checkout f171f1c746db01c283aa137cb24248fbb8eb7a18 Formula/mysql@5.6.rb``` でエラーが出ます。 `/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/mysql@5.6.rb` の中身を置き換えてもbundle install がうまくいきませんでした。
fkm_y

2019/10/19 17:01 編集

@KKKOOOTTT `$mysql --version` を実行結果は何が表示されるか教えていただけますでしょうか?
KKKOOOTTT

2019/10/20 06:23

@fkm_y ありがとうございます。 mysql --versionの実行後は、 zsh: command not found: mysql とでます。 mysql@5.6.rb` の中身を置き換えてから、このエラーが出ます。 再度、 $ brew uninstall mysql@5.6 $ brew install mysql@5.6 を行いましたが、 zsh: command not found: mysql が出ます。
fkm_y

2019/10/20 06:59

@KKKOOOTTT mysql@5.6.rb の中身は元に戻していますでしょうか? または何らかの理由でパスが通っていないのでは?
guest

0

macOSでGemをインストールするライブラリが足りないと思われるので、(mysql)
Homebrewで以下のようにインストールすると必要なライブラリも入るので、実行してから、bundle installを試してみてください。

brew install mysql

投稿2019/10/17 08:20

ryuii

総合スコア438

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

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

Tsuyoponpon

2019/10/17 09:18

ryuji さん ご回答ありがとう御座います! 教えていただいた通り、Homebrew経由でMySQL2をダウンロードしたのですが、エラー内容は変わりませんでした。 もう少し解決策を探してみようと思います!ありがとう御座いました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問