rails でmysqlを使ったらエラー出た。。
Mysql2::Error::ConnectionError (Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)):
ERROR! The server quit without updating PID file (/usr/local/var/mysql/**.local.pid)
環境
MySQL : 5.7.37
macOS : 10.14.6
ruby : 2.7.2
rails : 6.0.3
調べると、所有権に問題があるというので、ログインするため下のコマンドを試してみました。
まずは、ログイン
mysql -u root -p
パスワードを何度打っても通らなかったので、パスワードがわからなくなったか、何らかの変更が加わったと思ったので、 mysql5.7を入れ直すことにしました。
まず入れ直すときに、大事なのはもともとあるファイルをしっかり削除することです。入れ直す場合、前のファイルが残っていると、エラーを引き起こし、スムーズにいかなくなる可能性があります。
※削除すると,DBの情報が削除されるので、大事な情報を入れている場合は気おつけてください。
ファイル削除
sudo rm -rf /usr/local/var/mysql
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 /etc/my.cnf
mysql.sock mysql.sock.lock も削除する。
cd /tmp
ls # ファイル確認。
sudo rm -rf mysql.sock mysql.sock.lock
プロセスを削除してください。
ps aux | grep mysql # 確認
kill -9 ???? # 権限を消す
プロセスは、自分が実行したプログラムのことです。
mysql@5.7 アンインストールする。
brew uninstall mysql@5.7
アンインストールされているか心配ならコマンドで確かめてみてください。
mysql@5.7 インストールする。
brew install mysql@5.7
which mysql #mysqlが入っているか確認
インストールした後パスというのを通さないと、スムーズに進まないので、しっかりとコマンドを打っておきましょう!!
パスを通す。
echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.bash_profile
パスとは、、
macの中のメモ帳に書いておいて、いつでも取り出せるようにしておくということ。。
パスを有効にするコマンド
source ~/.bash_profile
ログイン
mysql -u root -p
ログインして、パスワードをしっかりと変更する。変更するコマンドはこれです。
パスワード変更
UPDATE user SET authentication_string=password('新しいパスワード') WHERE user='root';
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 1
変更を反映
flush privileges;
Query OK, 0 rows affected (0.00 sec)
データベースを作る。
rails db:create
めちゃめちゃ大変だったと思いますが、これで完成です!!
ローカルサーバーを立ち上げる。
rails s
特にエラーの内容がよくわからない場合、結構さまようと思いますが、落ち着いて検索し、メモしつつ整理していけば、解決できることが多いので、落ち着いて頑張ってください!!
お世話になった記事