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

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

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

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

Ruby on Rails

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

3回答

738閲覧

【rails】 mysqlを使用して接続周りでエラーが出る

ryo-pio

総合スコア1

MySQL

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

Ruby on Rails

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

1クリップ

投稿2020/07/28 05:58

編集2020/07/28 06:16

前提・実現したいこと

mysqlを用いてRailsアプリを作成し、rails sさせたい

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

おそらくRailsとmysqlでの接続ができていない

【ターミナル】
$ rails 5.2.1 new [app_name] -d mysql <- 作成できる
$ rails s <- 立ち上げできる

【Chrom】
http://localhost:3000/ を入力した時下記のエラーが出てくる

#<LoadError: Error loading the 'mysql2' Active Record adapter. Missing a gem it depends on? cannot load such file -- mysql2>

試したこと

mysqlのupdate
アプリ内のgemに書いてあるmysqlのgemのバージョン確認
sqliteで作成してからmysqlへ変更してみた。ができず。

参考にしたサイト

https://qiita.com/kuropp/items/af1d7ee76d0c1417dd78
https://qiita.com/sun_peace/items/f06cc95e63a71b7296ec
https://qiita.com/fuku_tech/items/a380ebb1fd156c14c25b

補足情報

【Gemfile】 ruby '2.5.1' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '~> 5.2.1' # Use mysql as the database for Active Record gem 'mysql2', '<= 0.8.21' # Use Puma as the app server gem 'puma', '~> 3.11' (省略)
【database.yml】 (省略) default: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: socket: /tmp/mysql.sock development: <<: *default database: app_development (省略)

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

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

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

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

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

guest

回答3

0

!一番下に原因と解決法あり!

【解決した方法(表面上)】
$ brew reinstall mysql
でmysqlを再インストールし、
Railsのバージョンを5.2.4.3に指定
Database 'xxxxx_development' already existsのエラーが出て、
mysqlのコマンドで該当DBを削除
再度rake db:createを実行
Created database 'xxxxx_development'

rails sもでき、http://localhost:3000/に接続してもエラーが出なくなりました。
多分その場しのぎの解決法でしかなく、根本的な解決になってないし、原因も把握できていない。

問題解決した本当の原因はこれではなく、
試行錯誤しているときに何度も同じアプリケーション名で作成し、
同じdbを作成していたので整合性が取れなく、
dbの接続が上手く行かなかったのではないかと考えています。

rails6 で上手くいくかこれから試します。

根本的な解決策がわかる方は、まだ回答受け付けているのでご協力お願いしま

【原因】
rubyのバージョンとgem mysql2のバージョンとrailsのバージョンがあっていなくて、エラーが起きていた。

【解決法】
とりあえず、バージョンアップ
ruby 2.7.1
rails 6.0.3.2
MySQLも最新に
したら無事に、
$ rails new [app_name] -d mysql
$ rake db:create
ができ、"Yay! You’re on Rails!"の表示に成功!

投稿2020/08/07 05:15

ryo-pio

総合スコア1

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

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

0

自己解決

【解決した方法(表面上)】
$ brew reinstall mysql
でmysqlを再インストールし、
Railsのバージョンを5.2.4.3に指定
Database 'xxxxx_development' already existsのエラーが出て、
mysqlのコマンドで該当DBを削除
再度rake db:createを実行
Created database 'xxxxx_development'

rails sもでき、http://localhost:3000/に接続してもエラーが出なくなりました。
多分その場しのぎの解決法でしかなく、根本的な解決になってないし、原因も把握できていない。

問題解決した本当の原因はこれではなく、
試行錯誤しているときに何度も同じアプリケーション名で作成し、
同じdbを作成していたので整合性が取れなく、
dbの接続が上手く行かなかったのではないかと考えています。

rails6 で上手くいくかこれから試します。

根本的な解決策がわかる方は、まだ回答受け付けているのでご協力お願いします!

投稿2020/08/06 06:36

編集2020/08/06 06:42
ryo-pio

総合スコア1

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

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

0

Gemfile を更新した後は、
BundlerGemfile から lock して Gemfile.lock を更新し、
Gemfile.lock から install しましたか?

参考:

投稿2020/07/28 06:27

y_shinoda

総合スコア3272

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

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

ryo-pio

2020/07/28 06:56

回答ありがとうございます gemfile.lockをupdateしてみても同じエラーが返ってきてしまいました。 gemfile.lockからinstallは ``` $ bundle update ``` 送っていただいたURLの「 Updating All Gems If you run bundle lock with --update option without list of gems, bundler will ignore any previously installed gems and resolve all dependencies again based on the latest versions of all gems available in the sources.」 の部分を参考にさせていただきました
y_shinoda

2020/07/28 07:07

bundle lock コマンドを実行してから bundle install を実行してみるといかがですか?
ryo-pio

2020/07/28 07:32

そちらも試しましたが、同じエラーが生じてしまいます 掲載しているエラー画面をリロードすると、 ActiveRecord::ConnectionNotEstablished (No connection pool with 'primary' found.): と表示されるようになったのですが、関係ありますか?
y_shinoda

2020/07/28 08:21

Rails を再起動するといかがでしょうか?
ryo-pio

2020/07/30 00:19

何度も再起動していますが、解決しないです。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問