2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

docker-composeで立ち上げたmysqlに接続できなかった

Last updated at Posted at 2023-11-28

docker-composeでmysqlのコンテナを立ち上げて、mysql -h 127.0.0.1 -P 3306 -u root -pで接続しようとしたらエラーで入れなかった。

2つ違うので引っかかった……。

一つ目のエラー

まず突き当たったのがこちら

ERROR 2002 (HY000): Can’t connect to local mysql server through socket ‘/var/run/mysqld/mysqld.sock’

解消方法

流用したmy.cnfにこんな感じでソケットの場所の指定が書いてあった。

my.cnf
socket=/var/lib/mysql/mysql.sock

この指定を消すことで、接続できるようになった。
こいつのせいでdockerのコンテナ内にソケットファイルが作られず、永遠にログインできなかった。

いろいろ調べた挙句、アホな理由だった。

二つ目のエラー

一つ目を解消して出てきたのが、こんなエラー。

RROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

解消方法

こんな感じでrootのパスワードを設定していたのだが、このパスワードがよくなかった。

docker-compose.yml
version: '3'
services:
  db:
    image: mysql:8.2
    environment:
      MYSQL_ROOT_PASSWORD: 'piyoPa6i4m$s'
    volumes:
(略)

どうも$が入っていると変数として認識されるらしく、$なしのパスワードに変えたところ接続できるようになった。

ちなみにdocker-composeを立ち上げたときに不穏なWarningが出ていて、これがヒントだった。
(でも、その時はWARNだし……と無視していて痛い目を見た……)

WARN[0000] The “s” variable is not set. Defaulting to a blank string.

$マークのエスケープ方法はこちらに書いてくれていた。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?