動作環境
Mac Big Sur 11.3.1
Rails 6.1.4
経緯
久しぶりにRailsの勉強をしてみようと思って rails db:create しようとしてみたら、タイトルのエラーが出現しました。
似たような記事はたくさんありますが、すぐに解決できなかったので、解決方法を記録しておきます。
解決方法
一度MySQLをアンインストール
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$ 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*
再度MySQL5.7のインストール
brew install mysql@5.7
brew services start mysql@5.7
brew link mysql@5.7 --force
パスを通す
#zshの場合
echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
#bashの場合
echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
bundle config を実行
bundle config --global build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib"
database.yml の内容を修正する
default: &default
adapter: mysql2
encoding: utf8mb4
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password:
#socket の内容を修正
#socket: /var/lib/mysql/mysql.sock
socket: /tmp/mysql.sock
参考にしたサイト
mysqlが起動できない(Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2))
【MySQL】pid not foundもしくはpermission deniedの対応方法
Mac MySQLをきれいにアンインストールしてからインストールする