Skip to content

Instantly share code, notes, and snippets.

@lrf141
Created May 24, 2020 14:40
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lrf141/4848a29405921c4da172e7be2959415e to your computer and use it in GitHub Desktop.
Save lrf141/4848a29405921c4da172e7be2959415e to your computer and use it in GitHub Desktop.
MySQL 8.0.18 の docker コンテナを割と最小構成で起動した時のログ。default_native_password, port=33060, MYSQL_ROOT_PASSWORD だけ設定している
❯ docker-compose logs
Attaching to binlog-repl_master_1
master_1 | 2020-05-24 14:14:47+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.18-1debian9 started.
master_1 | 2020-05-24 14:14:47+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
master_1 | 2020-05-24 14:14:47+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.18-1debian9 started.
master_1 | 2020-05-24 14:14:47+00:00 [Note] [Entrypoint]: Initializing database files
master_1 | 2020-05-24T14:14:47.489542Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
master_1 | 2020-05-24T14:14:47.490218Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.18) initializing of server in progress as process 48
master_1 | 2020-05-24T14:14:51.079329Z 5 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
master_1 | 2020-05-24 14:14:54+00:00 [Note] [Entrypoint]: Database files initialized
master_1 | 2020-05-24 14:14:54+00:00 [Note] [Entrypoint]: Starting temporary server
master_1 | 2020-05-24T14:14:54.738243Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
master_1 | 2020-05-24T14:14:54.739005Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.18) starting as process 97
master_1 | 2020-05-24T14:14:55.555469Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
master_1 | 2020-05-24T14:14:55.566293Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
master_1 | 2020-05-24T14:14:55.608994Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.18' socket: '/var/run/mysqld/mysqld.sock' port: 0 MySQL Community Server - GPL.
master_1 | 2020-05-24 14:14:55+00:00 [Note] [Entrypoint]: Temporary server started.
master_1 | 2020-05-24T14:14:55.863681Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock'
master_1 | Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
master_1 | Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it.
master_1 | Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
master_1 | Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it.
master_1 | 2020-05-24 14:14:59+00:00 [Note] [Entrypoint]: Creating database sample
master_1 |
master_1 | 2020-05-24 14:14:59+00:00 [Note] [Entrypoint]: Stopping temporary server
master_1 | 2020-05-24T14:14:59.745593Z 11 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.18).
master_1 | 2020-05-24T14:15:00.689149Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.18) MySQL Community Server - GPL.
master_1 | 2020-05-24 14:15:00+00:00 [Note] [Entrypoint]: Temporary server stopped
master_1 |
master_1 | 2020-05-24 14:15:00+00:00 [Note] [Entrypoint]: MySQL init process done. Ready for start up.
master_1 |
master_1 | 2020-05-24T14:15:01.036210Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
master_1 | 2020-05-24T14:15:01.036868Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.18) starting as process 1
master_1 | 2020-05-24T14:15:01.733035Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
master_1 | 2020-05-24T14:15:01.743247Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
master_1 | 2020-05-24T14:15:01.783752Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.18' socket: '/var/run/mysqld/mysqld.sock' port: 33060 MySQL Community Server - GPL.
master_1 | 2020-05-24T14:15:02.882639Z 0 [ERROR] [MY-011300] [Server] Plugin mysqlx reported: 'Setup of bind-address: '*' port: 33060 failed, `bind()` failed with error: Address already in use (98). Do you already have another mysqld server running with Mysqlx ?'
master_1 | 2020-05-24T14:15:02.882761Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock'
@yoku0825
Copy link

https://gist.github.com/lrf141/4848a29405921c4da172e7be2959415e#file-mysql-logs-L7

Dockerイメージには symbolic-links を無効にするコンフィグが置かれていますが、

https://github.com/docker-library/mysql/blob/master/8.0/config/my.cnf#L28

このオプションそのものがdeprecatedです。
デフォルトも(結構前から)無効なので、そもそもオプション書くなよって言ってますね! (プルリクチャンス?

@yoku0825
Copy link

https://gist.github.com/lrf141/4848a29405921c4da172e7be2959415e#file-mysql-logs-L9

entrypoint.sh はデータが無ければ --initialize-insecure してから新しくrootとかその他のアカウントをほげります。このワーニングは --initialize-insecure した時に必ず出るやつです。

https://github.com/docker-library/mysql/blob/master/8.0/docker-entrypoint.sh#L163

@yoku0825
Copy link

https://gist.github.com/lrf141/4848a29405921c4da172e7be2959415e#file-mysql-logs-L14

--auto-generate-certs=ON (←デフォルトON) の場合、無ければ datadir/*.pem にオレオレ証明書を作ります。
ただし、証明書がオレオレだと起動時にこのワーニングを吐きます。

https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_auto_generate_certs

@yoku0825
Copy link

yoku0825 commented May 24, 2020

https://gist.github.com/lrf141/4848a29405921c4da172e7be2959415e#file-mysql-logs-L15

pidファイルのパーミッションが o+w またはpidファイルの置いてあるディレクトリのパーミッションが o+w になっていると出るワーニングです。mysqld的には改竄されても痛くも痒くもない(デーモンの動作としてはどうでもいいはず)ですが、systemdとか親プロセスに不都合が出ることがあるのでこんなんなってた気がします。

↓が判定部分で、

https://github.com/mysql/mysql-server/blob/mysql-8.0.18/sql-common/my_path_permissions.cc#L42-L55

↑を呼んでワーニングを吐いてるのは↓

https://github.com/mysql/mysql-server/blob/mysql-8.0.18/sql/mysqld.cc#L10266-L10280

@yoku0825
Copy link

https://gist.github.com/lrf141/4848a29405921c4da172e7be2959415e#file-mysql-logs-L19-L22

datadirを初期化した後に、タイムゾーン情報をロードしています。

https://github.com/docker-library/mysql/blob/master/8.0/docker-entrypoint.sh#L219-L222

/usr/share/zoneinfoの下にはtzdata以外のものも置かれているので、そいつらを「食えない」と言っています。
https://ja.wikipedia.org/wiki/Tz_database

@yoku0825
Copy link

https://gist.github.com/lrf141/4848a29405921c4da172e7be2959415e#file-mysql-logs-L37

読んで字のごとく33060をbindしようとしたら既に使われていたようです。
entrypoint.sh--initialize-insecure -> 一旦起動して初期アカウントとかゴニョゴニョ -> 単に mysqladmin shutdown を叩いた後すぐにもう一度起動しようとする ので、前のプロセスが完全に落ち切っていなかったかも知れません( mysqladmin shutdown のシャットダウンは非同期です。 mysqld が落ちる前に mysqladmin プロセスが停止します)

https://github.com/docker-library/mysql/blob/master/8.0/docker-entrypoint.sh#L370

と思ったんですが、 mysqld のポートを33060に指定してるということだったので、それとMySQLXが使う( --mysqlx-port 、デフォルトは33060) ポートとカブっただけですね。初期化とかの時は --port=3306 で、最後の起動だけ33060でやってたのでしょうきっと

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment