目次
[さらに読む]TL;DR
-
RESTART
ステートメントの本質は「終了コード16でmysqld
を停止」するだけ- 親プロセス(
mysqld_safe
,systemd
,dockerd
とかとか) が「終了コード16の時はもう一度mysqld
を起動する」という実装をしなければならない
- 親プロセス(
-
RESTART
ステートメントの処理の中で、「SHUTDOWN
権限があるか」「MYSQLD_PARENT_PID
環境変数がセットされているか」を判定してから、SIGUSR2
シグナルを使って終了コード16での終了に持っていく- 8.0.20までのDockerイメージの
entrypoint.sh
はMYSQLD_PARENT_PID
を渡していなかったので、その評価のところでfalseになって …
- 8.0.20までのDockerイメージの
はじめに
MDS(MySQL Database Service)が東京リージョンにも来ました!
(^O^) <祝!
というわけで、朝4時に起こされたこともあり、時間もできたんで久々にOCIを触ってみたんですが、作りたいものが簡単に作れて楽しかったです。
ただ、公式チュートリアルにMDS関連がまだ無いこと、MDS系だとlefredさんのブログとか …
[さらに読む]TL;DR
-
mysql-community-serverをインストールした時に
rootのパスワードどうする? パスワードなしでUNIX socketベースの認証をするなら空っぽにしておいて
と聞かれませんでしたか?- これを空っぽにしておくと、
root@localhost
が auth_socketプラグインを使うようになってパスワードを一切合切受け付けなくなる
- これを空っぽにしておくと、
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu Configuring mysql-community-server tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x Please provide a strong password that will be set for the root account of your MySQL database. Leave it blank to enable x
x password less login using UNIX socket based authentication. x
x …
[さらに読む]
MySQL で Host '〜' is blocked because of many connection
errors
が出るのってどういうときだっけ…とふと思ったので接続周りを調べてみた。
クライアントごとの連続接続失敗によるブロック
マニュアル https://dev.mysql.com/doc/refman/8.0/en/blocked-host.html にはこう書かれてる (DeepL翻訳)
システム変数 max_connect_errors の値は、何回連続して中断される接続要求を許可するかを決定します。max_connect_errors が接続に成功せずにリクエストに失敗した後、mysqld は何か問題がある (誰かが侵入しようとしているなど) と判断し、FLUSH HOSTS 文、Performance Schema host_cache テーブルを切り捨てる TRUNCATE TABLE 文、または …
[さらに読む]TL;DR
The metadata-cache URI options are:
disconnect_on_metadata_unavailable
なるものの存在を知って
mysqlrouter.conf
に書いてみたけど反映されなくてよく読んだらURIオプションだった。
$ sudo vim /etc/mysqlrouter/mysqlrouter.conf
..
[routing:myRs_ro]
bind_address=0.0.0.0
bind_port=6447
destinations=metadata-cache://myRs/?role=SECONDARY
round-robin-with-fallback
protocol=classic
disconnect_on_promoted_to_primary=yes ### 間違い!!!
..
↑のようにルーティングセクションにそのまま書くのではなくて、ルーティングセクションの …
[さらに読む]TL;DR
-
ポートに対応する宛先(デフォルトでは6446はマスター、6447なら全てのスレーブとマスターも(デフォルトだとフォールバックするから))のmysqldが全滅していると、CR_CONN_HOST_ERROR(2003)の後ろのアドレスがmysqlrouterのLISTENポートになる
- どこが落ちてるのかメッセージからわかりにくいと嘆かないで、「全滅した時だけ」だから
- 切り分けの一助になれば幸い
-
ただしこの「全滅」は
…_hidden: true
を含む。