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)

 

めっちゃ怒られた

腹が立ってここから色々それっぽいのやりまくった

brew uninstall mysql

sudo rm -rf /usr/local/mysql

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 

brew install mysql

確認してみたら

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してみた

まあ結果変わらなかったので

f:id:karma83:20210212113054p:plain

ムカついて殺しまくった

 

そして色々調べたらこのコマンドの世界には医者がいることが判明した

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色々触ったけどどうなったんだろう?

f:id:karma83:20210212114738p:plain

嘘だろ

 

MySQL said: Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2): image not found
ぐぐったら

qiita.com


アプデで認識の方法が変わったらしいなので前の状態に戻したい

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)

 次回に続くかも