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

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

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

エラー内容

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

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

Received #1045 error from MySQL server: "Access denied for user 'root'@'localhost' (using password: YES)"

エラー原因

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

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

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

$ sudo lsof -i:3306

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

$ sudo mysql.server stop

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

$ mysql.server status

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

$ mysql.server stop
$ brew services stop mysql

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

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

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

development:
    driver: mymysql
    open: tcp:localhost:3306*dmm_aff/root/pass
development:
    driver: mysql
    open: root:pass@tcp(127.0.0.1:3306)/dmm_aff

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

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

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

goose状況確認

$ goose status

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

Comments

No comments yet. Why don’t you start the discussion?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です