MySQL で max_allowed_packet を超過した場合

MySQL で max_allowed_packet を超過した場合にどうなるんだっけ…と思って試してみた結果。 サーバーの max_allowed_packet をクエリが超過した場合 MySQL 5.6 サーバー起動 % docker run --name mysql56 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql:5.6 --…

広告のエロ画像をブロックしたい

ウェブの広告は別にいいんだけど、エロ画像の広告は見たくない。 エロ画像広告を見かけたらその画像の URL のサーバー名を記録しておいて、HTTP リクエスト時に実際のサーバーにアクセスしないようにすれば良さそう。 たとえば、サーバー名の名前解決で 127.…

Postfixでオレオレ認証を作る

Postfix で SMTP 認証するには、Cyrus SASL と Dovecot SASL のどちらかを使用できる。 Cyrus SASL は、Postfix のビルド時に SASL ライブラリを組み込む必要があるが、Dovecot SASL は特殊なライブラリは必要ない。 Dovecot SASL はネットワーク通信で、通…

sudo su とかしてる人はだいたいおっさん

sudo に -s がついたのは 1995年、-i は 2004年なので、sudo su とかしてる人はだいたいおっさん。— とみたまさひろ (@tmtms) 2021年5月21日 テキトーに書いたこれが「ややウケ」だった。 そういや自分が sudo 使い始めたのは20年以上前で、うろ覚えなので調…

1ベイのQNAPのディスク交換

我が家では1ベイのQNAP(TS-121)を 2TB HDD で使ってるんだけど空きがなくなってきたんで、4TB HDD に交換することにした。 ダメだったやつ Linux PC に新旧両方の HDD を繋いで dd if=/dev/sdb of=/dev/sdc で丸ごとコピーすればいいかと思ってやってみた。…

MySQL 8.0.24 の文字コードまわり

2021/4/20 にリリースされた MySQL 8.0.24 について私が気になったものについて。 まあ文字コードまわりだけなんだけど。 utf8 を utf8mb3 として出力する Client applications and test suite plugins now report utf8mb3 rather than utf8 when writing ch…

Postfix 3.6

4/29 に Postfix 3.6 がリリースされたので、その変更点などを。 3.5 と 3.6 のパラメータの差分はこちら。 デュアルライセンス whitelist / blacklist が allowlist / denylist に変更 内部プロトコル変更 TLS まわり compatibility_level が Postfix のバ…

Ruby の Socket.tcp を知った

Ruby で TCP のクライアントとしてサーバーに接続するには TCPSocket.open(TCPSocket.new)を使うもんだと思ってたんだけど、最近 Socket.tcp というのもあることを知った。 どうやら 1.9.2 で追加されたらしい。10年以上も気づかなかった…。サーバー側の Soc…

UPDATE1文だけでもデッドロックするという話

デッドロックは複数のトランザクションが複数のレコードをロックする場合にタイミングによって発生する。 トランザクションAがレコード1をロック→成功 トランザクションBがレコード2をロック→成功 トランザクションAがレコード2をロック→2のロックの解放待ち…

MySQLマニュアルの差分

MySQL 8.0.x はパッチレベルのリリースで機能追加がされていくんだけど、マニュアルは常に 8.0 の最新版しか公開されてない。 MySQL は OSS だけど、MySQL のマニュアルは自由なライセンスではないしリポジトリも公開されてない。 ライセンスは自由でなくて…

MySQL徹底入門第4版からの差分

2020年7月に出た「MySQL徹底入門 第4版」という本は MySQL 8.0.20 をベースとしてたんですが、ご存知の通り MySQL 8.0 はパッチリリースでどんどん機能が追加されてったりするんで、同じ 8.0 でも最新版とは機能の差分が出てしまってます。 ということで、自…

Ubuntu で Vuetify を始めるためのメモ

Node も npm も Yarn も Vue もよくわかってないけど見様見真似でやった。どうせ忘れるのでメモ。 Node.js のインストール OS の nodejs が入ってる場合はなんだかわからないけど依存関係でエラーになったので削除しておく。 sudo apt remove nodejs https:/…

MySQL Parameters のデータの作り方

これは MySQL Advent Calendar 2020 の 25日目の記事です。 MySQL Parameters というページのメンテをしてます。 MySQL Paramters は MySQL のバージョン間の差分を表示できるものです。 現在次のバージョンを比較できます。 5.0.96 5.1.72 5.5.58〜62 5.6.3…

Ruby Net::SMTP

Ruby Net::SMTP これは 富士通クラウドテクノロジーズ Advent Calendar 2020 と FUJITSU Advent Calendar 2020の 5日目の記事です。 会社のアドベントカレンダーですが、記事の内容は会社とは関係ありません。 nagano.rb #6 で発表したネタです。 SMTP SMTP …

MySQL 8.0.22 で `ORDER BY ?` のプリペアドステートメントがフリーズする原因

tmtms.hatenablog.com の続き。 C API だと ORDER BY ? のプリペアドステートメントでクライアントがフリーズするというのを書いたんだけど、Go だと問題ない という話があったので、MySQL のプロトコルを追ってみた。 プリペアドステートメントを発行すると…