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

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

ただいまの
回答率

88.23%

rake db:createを実行するとエラーが起きました

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 2,318

honda_toru

score 30

railsで初めからアプリの開発をはじめましたが
$rake db:createを実行すると以下のエラーが発生しました
解決策をご教示ください。また初心者なので具体的なコマンドもご教示お願いします。

また、以前は$rake db:createを実行できていました。
もし初めから全てインストールし直したら良い場合
消した方がいいものと、消し方をご教示ください。
これ以上進まなくてとても困っているので、お助けいただけないでしょうか?

rake aborted!
LoadError: dlopen(/Users/name/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/mysql2-0.5.2/lib/mysql2/mysql2.bundle, 9): Library not loaded: /usr/local/opt/mysql/lib/libmysqlclient.20.dylib
Referenced from: /Users/name/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/mysql2-0.5.2/lib/mysql2/mysql2.bundle
Reason: image not found - /Users/name/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/mysql2-0.5.2/lib/mysql2/mysql2.bundle
/Users/name/projects/sample/config/application.rb:7:in <top (required)>' /Users/name/projects/sample/Rakefile:4:in require_relative'
/Users/name/projects/sample/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)

これまでに行った処理は
$rails _5.2.1_ new sample -d mysql
Gemfileを編集
gem 'mysql2', '>= 0.4.4', '< 0.6.0'を
gem 'mysql2', '0.5.2'に
gem 'sass-rails', '~> 5.0'を
gem 'sass-rails', '5.0.7'に変更
末尾に
gem 'pry-rails'
gem 'compass-rails','3.1.0'
gem 'sprockets', '3.7.2'を追加しました。
$bundle update
$bundle installです

Mysqlに関連する処理
$ brew install mysql@5.6
$ mkdir ~/Library/LaunchAgents
$ ln -sfv /usr/local/opt/mysql\@5.6/*.plist ~/Library/LaunchAgents
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql\@5.6.plist
$ echo 'export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile
$ mysql.server start
$ mysql_secure_installation
$ mysql -uroot -p

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

check解決した方法

0

調べながら色々試すことで別のエラーになりました。
その過程で試したことを記述します
1.mysqlのプロセスを確認
$ ps ax | grep mysql
23704 s000  R+     0:00.00 grep mysql
2.mysqlのプロセスの強制終了をする
$ sudo kill プロセスID(23704)

3.再度mysqlのプロセスを確認
$ ps ax | grep mysql
→さっき消したプロセスが実際に消えてる

他には
$ ps -ef | grep mysql
501 87813     1   0 10:36PM ??         0:00.03 /bin/sh /usr/local/opt/mysql@5.6/bin/mysqld_safe --datadir=/usr/local/var/mysql
501 87910 87813   0 10:36PM ??         0:00.42 /usr/local/opt/mysql@5.6/bin/mysqld --basedir=/usr/local/opt/mysql@5.6 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/opt/mysql@5.6/lib/plugin --log-error=MacBook-Pro.local.err --pid-file=MacBook-Pro.local.pid
501 87912 26705   0 10:36PM ttys000    0:00.01 grep mysql
$ sudo kill 87910

mysqlの色々なファイルを削除しました
その過程でエラーが下記のように変わりました
$ rake db:create

Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)
Couldn't create 'sample_development' database. Please check your configuration.
rake aborted!
Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)
Tasks: TOP => db:create
(See full trace by running task with --trace)

また下記のエラーも起こっていたので
$ mysql.server start
Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/MacBook-Pro.local.pid).
こちらを試しました
$ sudo chown -R _mysql:_mysql /usr/local/var/mysql
$ sudo mysql.server start
Starting MySQL
. SUCCESS! 

$ mysql.server startのエラーが解決したのち
$ rake db:create
Created database 'sample_development'
Created database 'sample_test'
無事通りました
色々試したのでどのプロセスが正しかったのかがわかりませんが
$ sudo chown -R _mysql:_mysql /usr/local/var/mysqlのコマンドは効果があったと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

mysql の設定はできていますか?
していないなら、 web で mysql の設定方法をしらべて実施してください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/01/27 20:21

    mysqlの設定中に以下のエラーが発生していました
    これが原因でしょうか?
    $ source ~/.bash_profile
    -bash: eval: line 1: syntax error near unexpected token `&'
    -bash: eval: line 1: `&(rbenv init -)'

    キャンセル

  • 2019/01/29 00:06

    上記のエラーは解決しました
    Mysqlの設定も質問に追記したものは設定しました。

    キャンセル

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

  • ただいまの回答率 88.23%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る