【docker】rails5+mySQL5.6 sequel proからmysqlに接続できない
こんにちは
今回は作成したdocker環境のDBにローカルからアクセスしようとして
「Access denied for user 'root'@'localhost' (using password: YES)」というエラーの解消法を備忘録します
結論→ローカルのDBのポート番号を3306から4306に変更してアクセスできた
■経緯
dockerでrails開発環境を作成したものの、いつも使っているsequel pro(パンケーキ)からdockerコンテナ内のDBにアクセスできない!
■試したこと
※以下のコマンドからコマンドラインでアクセスできることは確認済み
$ mysql -u root -p -h localhost -P 3306 --protocol=tcp
デスクトップアプリからアクセスできないのが気持ち悪くて何度も試しました。。
・gemではmysql2がインストールされていたため、docker環境とホスト環境が違うことが原因かと何度もmysql2アンインストール→mysqlインストール(mysqlはインストールできなかった)
・mysql8.0でdocker環境作ってみた
→同じエラー
・mysql-dataというボリュームをマウントしていたため、何回も試していて内容が残っている可能性があるという情報よりボリューム削除→再度down・buildし直し
$ sudo rm -rf mysql-data
→同じエラー
■解決方法
https://tackeyy.com/blog/posts/docker-with-sequel-pro
こちらのサイトさまの通りにローカルのポート番号を変更しました。
3306→4306
→解決🙏
※余談ですが、docker環境のmysql8はsequel proから接続できませんでした。(ログインはできるんですけど)何か別のアプリケーションがあるのでしょうか。
↓作成はされています
$ mysql -u root -p -h 127.0.0.1 --port 3307
Server version: 8.0.19
mysql> SELECT Host, User FROM mysql.user;
+-----------+------------------+
| Host | User |
+-----------+------------------+
| % | root |
| localhost | mysql.infoschema |
| localhost | root |
+-----------+------------------+
5 rows in set (0.04 sec)