Mysql2::Error::ConnectionError (Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)):
EC2から逃げ帰って来たらこんなこと言われた
Mysql2::Error::ConnectionError (Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)):
とりあえずMYSQLをリセットしてみた
sudo mysql.server restart
ERROR! MySQL server PID file could not be found!
Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/rajakarunikarukaryoumanoMacBook-Pro.local.pid).
怒られた
データベースを作成してみる
rails db:create
Mysql2::Error: Can't create database 'debate_app_development' (errno: 2)
Couldn't create 'debate_app_development' database. Please check your configuration.
rails aborted!
ActiveRecord::StatementInvalid: Mysql2::Error: Can't create database 'debate_app_development' (errno: 2)
/Users/rajakarunikarukaryouma/projects/debate-app/bin/rails:9:in `<top (required)>'
/Users/rajakarunikarukaryouma/projects/debate-app/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Caused by:
Mysql2::Error: Can't create database 'debate_app_development' (errno: 2)
/Users/rajakarunikarukaryouma/projects/debate-app/bin/rails:9:in `<top (required)>'
/Users/rajakarunikarukaryouma/projects/debate-app/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Tasks: TOP => db:create
(See full trace by running task with --trace)
めっちゃ怒られた
腹が立ってここから色々それっぽいのやりまくった
sudo rm -rf /Library/StartupItems/MYSQL
sudo rm -rf /Library/PreferencePanes/MySQL.prefPane
sudo rm -rf /Library/Receipts/mysql-.pkg
sudo rm -rf /usr/local/Cellar/mysql*
sudo rm -rf /usr/local/bin/mysql*
sudo rm -rf /usr/local/var/mysql*
sudo rm -rf /usr/local/etc/my.cnf
sudo rm -rf /usr/local/share/mysql*
sudo rm -rf /usr/local/opt/mysql*
sudo rm -rf /usr/local/var/mysql/MacBook-Air.local.pid
確認してみたら
rails s
/Users/rajakarunikarukaryouma/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require': dlopen(/Users/rajakarunikarukaryouma/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/mysql2-0.5.3/lib/mysql2/mysql2.bundle, 9): Library not loaded: /usr/local/opt/mysql@5.6/lib/libmysqlclient.18.dylib (LoadError)
Referenced from: /Users/rajakarunikarukaryouma/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/mysql2-0.5.3/lib/mysql2/mysql2.bundle
Reason: image not found - /Users/rajakarunikarukaryouma/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/mysql2-0.5.3/lib/mysql2/mysql2.bundle
怒られた多分大事なのはLoadErrorだからそれで検索かけてみた
そしてbundle installしてみた
まあ結果変わらなかったので
ムカついて殺しまくった
そして色々調べたらこのコマンドの世界には医者がいることが判明した
bundle doctor
こいつが病気を見つけてくれる
早速使ってみた
The following gems are missing OS dependencies:
* mysql2: /usr/local/opt/mysql@5.6/lib/libmysqlclient.18.dylib
これを検索して
bundle exec gem uninstall mysql2
そして、もう一回診断してもらった診断料が無料なのはいいね
The following gems are missing
* mysql2 (0.5.3)
Install missing gems with `bundle install`
言われた通りに
bundle install してみた
そしてrails s
rails s
ActiveRecord::NoDatabaseError (Unknown database 'debate_app_development'):
忘れてた
rails db:create
さあも一度だ!
ActiveRecord::PendingMigrationError (
Migrations are pending. To resolve this issue, run:
rails db:migrate RAILS_ENV=development
泣きたい!!
rails db:migrate:status
Schema migrations table does not exist yet.
あーなるほどテーブルがないのか
rails db:migrate:reset
これでどうだ
rails s
Completed 200 OK
来たー
寝よ!おアプデ来てるじゃんMACのOSがかわったのか〜
アプデ後
Mysql2::Error::ConnectionError (Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)):
嘘だ信じたくない!!
sudo mysql.server restart
Completed 200 OK
ヤッター寝よ
次の日
昨日SQL色々触ったけどどうなったんだろう?
嘘だろ
MySQL said: Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2): image not found
ぐぐったら
アプデで認識の方法が変わったらしいなので前の状態に戻したい
mysql -u root
mysqlに入って
mysql> SELECT host, user, plugin FROM mysql.user;
コマンドを打ったら
+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session | caching_sha2_password |
| localhost | mysql.sys | caching_sha2_password |
| localhost | root | caching_sha2_password |
+-----------+------------------+-----------------------+
caching_sha2_password
を mysql_native_password
に変更します。
caching_sha2_passwordが厳しいらしいので安全性が下がるらしいのですがしょうがない
mysql> ALTER USER 'root'@"localhost" IDENTIFIED WITH mysql_native_password BY '{password}';
rootは上の表のuserを選んで
そしたら
| localhost | root | mysql_native_password |
変わった
FLUSH PRIVILEGES;
これで反映させるらしい
MySQL の応答: Access denied for user 'root'@'localhost' (using password: NO)
エラーメッセージが変わった!!
mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
このコマンドが封じられている
mysql.server stop
したら
touch: /usr/local/var/mysql/rajakarunikarukaryoumanoMacBook-Pro.local.pid.shutdown: Permission denied
cat: /usr/local/var/mysql/rajakarunikarukaryoumanoMacBook-Pro.local.pid: Permission denied
ERROR! MySQL server process # is not running!
override rw-r----- _mysql/_mysql for /usr/local/var/mysql/rajakarunikarukaryoumanoMacBook-Pro.local.pid? ^C
なので
sudo mysql.server stop
これでいけた
mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
次回に続くかも