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

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

新規登録して質問してみよう
ただいま回答率
85.49%
MacOS(OSX)

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

Ruby on Rails

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

Q&A

解決済

3回答

703閲覧

mac で MySQL の bundle install でエラー

退会済みユーザー

退会済みユーザー

総合スコア0

MacOS(OSX)

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

Ruby on Rails

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

0グッド

0クリップ

投稿2018/09/01 16:22

編集2018/09/14 03:21

mac book pro 2017 で homebrew から ruby や ruby-env をインストールして Rails の環境を作ったのですが

gem 'mysql2' ~> 0.3.20
bundle install で mysql のところでエラーが出ます

軽く検索したら ssl 関連のエラーらしくて
xcode-select --install
を実行するだけでうまくいったというブログがいくつもでてくるのですが

xcode-select: error: command line tools are already installed, use "Software Update" to install updates
というエラーが出てうまくいきません

xcode-select のエラーに関しても検索するといろいろ記事がでてくるんですがそのうち次の2つ試しましたが何もかわりませんでした

App Store から XCode 最新版をいれてみても何かプロジェクトを作るみたいなGUIの窓がでるだけで
xcode-select --install はあいかわらずエラーが出ます

あと手動で command line tool を Appple developper からインストールするみたいな記事もあったのでやってみましたが
xcode-select --install も bundle-install も何もかわりません

OS は macOS High Sierra 10.13.6 です

よろしくおねがいします

追記: エラーログ

Installing mysql2 0.3.20 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension. /Users/assist1/.rbenv/versions/2.2.2/bin/ruby -r ./siteconf20180914-31937-1ra6qbf.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 /Users/assist1/local/homebrew/bin/mysql_config ----- checking for mysql.h... yes checking for errmsg.h... yes checking for mysqld_error.h... yes ----- Setting rpath to /Users/assist1/local/homebrew/Cellar/mysql/8.0.11/lib ----- creating Makefile make "DESTDIR=" clean make "DESTDIR=" compiling infile.c compiling client.c 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 /Users/assist1/local/homebrew/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: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 /Users/assist1/local/homebrew/Cellar/mysql/8.0.11/include/mysql/mysql.h:188:3: note: 'MYSQL_DEFAULT_AUTH' declared here MYSQL_DEFAULT_AUTH, ^ 10 errors generated. make: *** [client.o] Error 1 make failed, exit code 2

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

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

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

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

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

CHERRY

2018/09/01 23:57

bundle install で 表示されるメッセージをそのまま記載してください。
退会済みユーザー

退会済みユーザー

2018/09/04 00:17

gem のバージョンをいろいろさわってたら同じエラーが再現できなくなってしまいました
guest

回答3

0

ベストアンサー

追記されたエラーメッセージをみると ruby の mysql2 ( 0.3.20 )が、インストールされている MySQL のバージョン ( 8.0.11 ) に対応していないのが原因ですね。

Mysql2 - A modern, simple and very fast MySQL library for Ruby - binding to libmysql をみると MySQL 8.x に対応したのは、Ver 0.4.5 以降のようです。

Rails のバージョンや 他の gem がわかりませんが、現状の MySQL で動かすとすると

gem 'mysql2', '~> 0.3.20'

gem 'mysql2', '>= 0.4.5'

(「0.4.5 以上の最新版を使う」という指示)にしたら bundle install は、エラーなく終了しないでしょうか?


または、mysql2 のバージョンを上げれない場合は、 MySQL 8 をアンインストールして、MySQL 5.7 をインストールし直す必要があります。

投稿2018/09/14 04:26

CHERRY

総合スコア25171

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

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

退会済みユーザー

退会済みユーザー

2018/09/14 04:56

なるほどです 開発環境のインストールでローカルに入っている MySQL もみにいくのですね おそらく前回解決したときは Gemfile のバージョン制限をなくしたせいだと思うのですが 勝手に MySQL バージョンをあげて他で不具合が出るのは困るので >MySQL 8 をアンインストールして、MySQL 5.7 をインストールし直す必要があります こちらを試してみようと思います
CHERRY

2018/09/14 05:01

mysql2 は、その環境にある MySQL クライアントライブラリを参照して、コンパイルされます。 MySQL クライアントライブラリのバージョンが新しくて、対応していない場合は、エラーが発生します。(これが今回の状態ですね)
退会済みユーザー

退会済みユーザー

2018/09/14 06:59

ありがとうございます 無事どちらもインストールできました 自分ひとりだと xcode どうこうとかぜんぜん違う方向にすすんでたので エラーメッセージみただけで一瞬で原因を特定できるなんてすごいですね 本当に感謝です
guest

0

gem のバージョンをいろいろさわってたらいつのまにか解決していました
どのgemをどう変更したのが理由なのかよくわかってないので申し訳ありません

追記:
MySQL のバージョンをあげるとインストールできるようなのですが

gem 'mysql2', '~> 0.3.20'

という指定があってやはり解決していませんでした

投稿2018/09/04 00:18

編集2018/09/14 03:15
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

... bundle install で mysql のところでエラー ...

このエラー内容を示してください。
ssl 関連のエラー関係と判断をしたようですが、具体的にエラーメッセージをみたら、
そうでないかもしれないので。

xcode-select: error: command line tools are already installed, use "Software Update" to install updates

これは、すでにツールはインストール済みだよ という警告なので無視してよいです。

投稿2018/09/01 22:50

katoy

総合スコア22324

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

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

退会済みユーザー

退会済みユーザー

2018/09/04 00:19

そうなのですね ただそれで MySQL がインストールできたわけじゃないので別のところに理由があったみたいです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問