goose statusでハマったエラー記録(Received #1045 error from MySQL server: “Access denied for user ‘root’@’localhost’ (using password: YES)”)

Go製のDBマイグレーションツールgooseを使用してMySQLコンテナに疎通をしたかったのですが、以下のエラーが表示され、疎通確認がうまくいきませんでした。

スポンサーリンク

エラー内容

MySQLに接続出来ない。パスワードが違うようです。

あってるんだけど何故!?

エラー原因

原因としてはいくつか考えられますが、今回は1番の場合でした。他にも試したので可能性として全部記載しておきます。

エラー原因1.ホストでポートを使用している

macで3306ポートを使用している処理を確認

mysqlサーバが稼働していました。macで3306ポートを使用していた為、これを以下のコマンドで停止しました。sudoをつけないと止まらなかったです。

以下のコマンドで停止確認します。

もしこれで止まらなかったら、以下も試してみてください。

エラー原因2.goose の設定ファイル dbconf.yml 誤り

書き方は以下の2通りあり、どちらでも動きました。

何故mymysql?と思いましたが大丈夫でした。

localhostを指定する場合は、hostsファイルにlocalhost設定をしておく必要があります。以下記事参考。

Macのhosts設定
IPアドレスとホスト名の対比表として、hostsファイルを端末に設定する事が出来ます。ターミナルから以下コマンドで開きます。 (viで編集...

エラー原因3.パスワードが間違えている

MySQLのパスワードを確認してください。

goose状況確認

これでエラーにならなくなったので、gooseからMySQLの疎通確認が取れました。