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

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

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

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

Ruby on Rails

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

Q&A

解決済

2回答

1784閲覧

急なmysqlエラーでrails sができません。

bs_user

総合スコア5

MySQL

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

Ruby on Rails

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

0グッド

0クリップ

投稿2020/03/28 10:40

編集2020/03/28 12:03

前提・実現したいこと

Rails初学者です。
開発中のアプリで急にローカルでrails sができなくなりました。
githubにコードをあげたところいくつかのgemにセキュリティアラートが出まして、
その中のpumaのバージョンを中途半端に変更を加えたのが原因かもしれません。
色々試したところ、それ以前にmysqlが原因なのではと思うようになりました。

取り急ぎ変更前のコミットの内容を参考にgemgileとgemfile.lockの記述を元に戻し、
rails sをしてみたところmysqlのエラーが出てきました。
ここなども参考に色々と、似たような事例があったので試してみたのですが、
うまくいきません。

半日ほど、mysqlの知識がないなりに調べて色々と試したのですが
どうもうまくいきません

何卒よろしくお願いいたします。

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

$ rails s (①ローカルでサーバ起動) ↓ Could not find mysql2-0.5.2 in any of the sources Run `bundle install` to install missing gems. ↓ $ bundle install (②bundle installとあったので実行) ↓ An error occurred while installing mysql2 (0.5.2), and Bundler cannot continue. Make sure that `gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/'` succeeds before bundling. ↓ $ gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/' (③上記実行) ↓ ld: library not found for -limported_openssl clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [mysql2.bundle] Error 1 make failed, exit code 2 Gem files will remain installed in /Users/ユーザー名/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/mysql2-0.5.2 for inspection. Results logged to /Users/ユーザー名/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/extensions/x86_64-darwin-18/2.5.0-static/mysql2-0.5.2/gem_make.out

試したこと

まずmysqlのバージョンを調べるもおそらく問題なし。 エラー内容にしたがってコマンドを入力していきました。 ②番の後のエラー文を見るとやはりmysqlでエラーが出てしまっていて、 それが色々とbundle installなどに影響を与えているように思います。 基礎的な知識がないため、色々とわからないりに似たような記事を参考に試してはみたものの、 やはり最後は An error occurred while installing mysql2 (0.5.2), and Bundler cannot continue. Make sure that `gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/'` succeeds before bundling. のエラーが出てきます。

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

gem 'mysql2', '>= 0.4.4', '< 0.6.0'
バージョンの指定は問題ないと思います。

追記

他のアプリもrails sできないようです。

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

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

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

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

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

CHERRY

2020/03/28 12:12

> ld: library not found for -limported_openssl と表示されているということは、ライブラリが見つからないようですが、お使いの環境は何でしょうか?
bs_user

2020/03/28 12:25

無知で申し訳ございません、この場合の環境と言いますのは何を指しますでしょうか。 macのosなどのことでしょうか。 mysqlのバージョンなどでしょうか。 SequelProにはMySql 5.6.46とあります。
hoshi-takanori

2020/03/28 17:14

環境とは、 ・OS の種類とバージョン ・ruby のバージョンと、どうやって入れたか(rbenv で入れた 2.5.1 ですね) ・MySQL のバージョンと、どうやって入れたか などです。他にもいろいろありますが。 Gemfile と Gemfile.lock を元に戻して bundle install すれば ruby のライブラリは元通りになるはずですが、他に何か変えましたか?
bs_user

2020/03/29 01:10

OS:macOS Mojava(Cararinaにアップデートせよとの通知が来ています) Ruby:ruby 2.5.1p57 rbenv で入れました。 MySQL:mysql Ver 14.14 Distrib 5.6.46 (ターミナルからbrew install mysql@5.6で入れました) 現在既存の全てのアプリでrails sしようとすると Could not find mysql2-0.5.2 in any of the sources Run `bundle install` to install missing gems. と出てきます。 作ったアプリをgithubにあげたところ、Security Alertsがいくつか出たのですが、 初めてのことですので色々と調べながらgemfileを触ってバージョンを上げたり下げたりしました。 その後もうまくいかずにgithub側のbotに直してもらえることがわかったので、botにプルリクを出して マスターにマージ…などの作業をしていたところローカルでのrails sができなくなりました。 上記のどの段階でおかしくなったかはわかりません。 気がつけばなぜか全ての既存アプリでrails sができないといった状況です。
bs_user

2020/03/29 01:16

追記 Rails 5.2.4.2
hoshi-takanori

2020/03/29 04:29

mysql2 の最新版は 0.5.3 のようですが、gem install mysql2 -v '0.5.3' でうまくいったりします?
bs_user

2020/03/29 05:03 編集

brew install mysql@5.6 ↓ Error: mysql@5.6 5.6.46 is already installed To upgrade to 5.6.47, run `brew upgrade mysql@5.6` ユーザー名Air:アプリ名 ユーザー名$ brew upgrade mysql@5.6 Updating Homebrew... ↓ brew upgrade mysql@5.6 ↓ bundle install としたところとりあえず 該当するアプリをrails sできるようにはなりました。 アプリも変わらず動作します。 それ以外の既存アプリは相変わらずrails sできません。 上記コマンドををホームディレクトリに移動してやれば解決するでしょうか。
hoshi-takanori

2020/03/29 04:45

それ以外の既存アプリの rails s のエラーメッセージを見ないと何も分かりません。
bs_user

2020/03/29 05:02

hoshi-takanoriさん、申し訳ございません、コメントの更新が反映されなかったようで2020/03/29 13:29のコメントを見落としました。 早速うまくいかなかったその他のアプリでgem install mysql2 -v '0.5.3' しましたがうまくいきません。 今回はld: library not found for -limported_openssl(が出た方のアプリはbrew upgrade mysql@5.6で成功しました)ではなく ↓ ld: library not found for -lssl がでました。 >それ以外の既存アプリの rails s のエラーメッセージを見ないと何も分かりません。 Could not find mysql2-0.5.2 in any of the sources Run `bundle install` to install missing gems. がrails sすると全て出てきます。
hoshi-takanori

2020/03/29 05:08

該当するアプリが mysql2 0.5.2 で動いたなら gem install mysql2 -v '0.5.3' は不要でしたね。 既存アプリの方でも bundle install したのでしょうか?
bs_user

2020/03/29 05:17

>既存アプリの方でも bundle install したのでしょうか? はい。
hoshi-takanori

2020/03/29 05:21

なるほど…。Ruby も Rails も詳しくないのですが、ライブラリのバージョンを合わせるのが大変なんですね。docker を使いたくなる理由が分かってきました。(単なる感想でごめんなさい。)
bs_user

2020/03/29 06:15

ちなみうまくいった方法を別のアプリで試したところ brew install mysql@5.6 ↓ Warning: mysql@5.6 5.6.47 is already installed and up-to-date To reinstall 5.6.47, run `brew reinstall mysql@5.6` ↓ brew reinstall mysql@5.6 ↓ bundle install ↓ rails s するとうまくいくかと思いきや [NOTE] You may have encountered a bug in the Ruby interpreter or extension libraries. Bug reports are welcome. For details: http://www.ruby-lang.org/bugreport.html [IMPORTANT] Don't forget to include the Crash Report log file under DiagnosticReports directory in bug reports. Abort trap: 6 と出てきました。
hoshi-takanori

2020/03/29 07:14

bundle install はアプリごとにやる必要がありますが、brew install (reinstall) はマシン全体の環境をいじるので、アプリごとにやる必要はありませんよ。また、gem install は、rbenv を使ってるので rbenv で指定したバージョンに対する操作になります。
bs_user

2020/03/29 09:32

>brew install (reinstall) はマシン全体の環境をいじるので、アプリごとにやる必要はありませんよ。 存じませんでした! だから全体的に色々おかしくなったのかもしれません。 ちなみに先ほどうまくいかなかったアプリですが。 gem 'mysql2', '~> 0.4.4', '< 0.5.3' ↓ gem 'mysql2', '~> 0.4.4' ↓ bundle update ↓ rails s にしてみたら成功しました。 他も試してみます。
guest

回答2

0

自己解決

gemのmysql2を

gem 'mysql2', '~> 0.4.4'

bundle update

rails s

で他のアプリもうまくrails sできるようになりました。
mysqlに関する他の方々のエラーを調べて、全て潰していった結果うまくいったので、
自己解決といっていいのか少し微妙なところですが、とりあえずの解決とします。
皆様のアドバイスもとても参考になりました、ありがとうございました。

投稿2020/03/30 18:58

bs_user

総合スコア5

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

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

0

ruby

1bundle config --local build.mysql2 "--with-cppflags=-I/usr/local/opt/openssl/includ

または

ruby

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

のあと

ruby

1bundle install

だといかがでしょうか。

投稿2020/03/30 14:49

twinsdevelopper

総合スコア14

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

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

bs_user

2020/03/30 18:51

ご回答ありがとうございます。 しかしうまくいきませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問