質問: 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 `' /Users/name/projects/sample/Rakefile:4:in`require_relative' /Users/name/projects/sample/Rakefile:4:in `' (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
回答: 調べながら色々試すことで別のエラーになりました。 その過程で試したことを記述します 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のコマンドは効果があったと思います。