rake db:createを実行するとエラーが起きました
- 評価
- クリップ 1
- VIEW 2,318
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ページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
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 の設定方法をしらべて実施してください。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.23%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる