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

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

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

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

MySQL

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Q&A

解決済

2回答

3854閲覧

mysqlをインストールしようとbundle installしてもエラーが出る[Ruby on Rails]

nakatievent

総合スコア38

Ruby on Rails 6

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

MySQL

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

0グッド

1クリップ

投稿2020/10/24 06:26

編集2020/10/24 06:37

お疲れ様です。
質問お願いします。

railsアプリをnewして、bundle installしたところ、

Fetching mysql2 0.5.3 Installing mysql2 0.5.3 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /home/codebase/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/mysql2-0.5.3/ext/mysql2 /home/codebase/.rbenv/versions/2.7.1/bin/ruby -I /home/codebase/.rbenv/versions/2.7.1/lib/ruby/2.7.0 -r ./siteconf20201024-233-humpb8.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()... yes checking for rb_absint_singlebit_p()... yes checking for rb_wait_for_single_fd()... yes *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include=${opt-dir}/include --with-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/home/codebase/.rbenv/versions/2.7.1/bin/$(RUBY_BASE_NAME) --with-mysql-dir --without-mysql-dir --with-mysql-include --without-mysql-include=${mysql-dir}/include --with-mysql-lib --without-mysql-lib=${mysql-dir}/lib --with-mysql-config --without-mysql-config --with-mysqlclient-dir --without-mysqlclient-dir --with-mysqlclient-include --without-mysqlclient-include=${mysqlclient-dir}/include --with-mysqlclient-lib --without-mysqlclient-lib=${mysqlclient-dir}/lib --with-mysqlclientlib --without-mysqlclientlib /home/codebase/.rbenv/versions/2.7.1/lib/ruby/2.7.0/mkmf.rb:1050:in `block in find_library': undefined method `split' for nil:NilClass (NoMethodError) from /home/codebase/.rbenv/versions/2.7.1/lib/ruby/2.7.0/mkmf.rb:1050:in `collect' from /home/codebase/.rbenv/versions/2.7.1/lib/ruby/2.7.0/mkmf.rb:1050:in `find_library' from extconf.rb:87:in `<main>' To see why this extension failed to compile, please check the mkmf.log which can be found here: /home/codebase/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/extensions/x86_64-linux/2.7.0/mysql2-0.5.3/mkmf.log extconf failed, exit code 1 Gem files will remain installed in /home/codebase/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/mysql2-0.5.3 for inspection. Results logged to /home/codebase/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/extensions/x86_64-linux/2.7.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

のようなエラーが出ます。

なので、色々ググってみて

gem install mysql2 -v '0.5.3' --source 'https://rubygems.org/'
$ bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib" $ bundle install
$ bundle config --local build.mysql2 "--with-cppflags=-I/usr/local/opt/openssl/include" $ bundle install

のようなコードを試したり、

gem 'mysql2', '~> 0.5.3'

Gemに追加してもmysqlをインストールすることができません。

解決方法分かる方いましたらご教授お願いします。

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

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

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

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

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

nakatievent

2020/10/24 09:43

回答ありがとうございます???? 後で試してみます!!
m.ts10806

2020/10/24 22:10

ここに至るまでどのような環境構築をしたのか分からないですが、 sudo apt-get install libmysqlclient-dev とかって試されました?そもそものMySQLClientをインストールするコマンドです。
nakatievent

2020/10/25 00:23 編集

お疲れ様です。 一応、さっきまで色々と調べていて、「自分のパソコンにMySQLがインストールされていないのでは?」ということに気づき、 https://qiita.com/kamina/items/35169738c57978b669c0 を参考に `$ sudo apt install mysql-server mysql-client` `$ sudo service mysql start` `$ sudo service mysql stop` `$ sudo usermod -d /var/lib/mysql mysql` `$ cat /etc/passwd` `$ sudo service mysql start` 上の記事の「root のパスワードを設定する」まで設定して、 `$ sudo apt-get install libmysqlclient-dev` `$ gem install mysql2` `$ bundle install` を実行してMySQLをインストールすることができました。
m.ts10806

2020/10/25 00:25

そうですね。MySQLがインストールされていないとRailsとの連携もできません(インストールされている前提でアプリは作成します) 質問本文に状況追記してください。 というか、解決ですかね?
nakatievent

2020/10/25 00:40 編集

そうですね、インストール自体は解決したのですが、また新しく分からないところが出たので教えてほしいです???? 現在、rails db:createすると下記のようなエラーが発生します。 Access denied for user '********'@'localhost' (using password: YES) Couldn't create 'Question_one_answer_development' database. Please check your configuration. rails aborted! Mysql2::Error::ConnectionError: Access denied for user '********'@'localhost' (using password: YES) bin/rails:4:in `<main>' Tasks: TOP => db:create (See full trace by running task with --trace) これは自分が新規作成したユーザー名でアクセスしようとしたのですが、アクセスエラーが起きてしまっているものです(ユーザー名・パスワードの間違いはなし) そこで、https://teratail.com/questions/254072 のベストアンサーを参考に、rootユーザーでアクセスして新規ユーザーへ権限を付与したいのですが、その方法が分からないので教えてほしいです。 一応、rootユーザーだとアクセスすることができ、下記のような感じでデータベースを作成することができました。 Created database '********_development' Created database '********_test'
guest

回答2

0

rails newを実行するときに-d mysqlオプションを指定してください。
わざわざ後からgem install mysql2などの実行は不要です。
ちなみにPostgreSQLの場合は-d postgresqlです。

投稿2020/10/24 09:37

technocore

総合スコア7337

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

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

nakatievent

2020/10/24 13:01

一応、rails new *** -d mysql --skip-test と実行したのですが、やはり上記と同じエラーが出てしまいます。
guest

0

自己解決

そもそも自分のPCにMySQLをインストールしていないのが原因でした。

なので、WSLのUbuntu 18.04でMySQL 5.7をセットアップを参考に、

$ sudo apt install mysql-server mysql-client

$ sudo service mysql start

$ sudo service mysql stop

$ sudo usermod -d /var/lib/mysql mysql

$ cat /etc/passwd

$ sudo service mysql start

まで実行し、上の記事のroot のパスワードを設定するまで設定して、

$ sudo apt-get install libmysqlclient-dev

$ gem install mysql2

$ bundle install

するとMySQLインストールできました!

投稿2020/10/27 13:30

nakatievent

総合スコア38

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問