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 のプロトコルを追ってみた。 プリペアドステートメントを発行すると…

CentOS 7 の mysql コマンドでの日本語入力

某所で CentOS 7 で mysql コマンドで日本語入力ができないという話を見かけた。 mysql> プロンプトで日本語を入力しようとしても確定すると消えてしまうらしい。 自分は Ubuntu で普通に入力できてるので調べてみた。 結論からいうと、これはロケールの問題…

MySQL 8.0.22 DNS SRV レコードサポート

MySQL 8.0.22 の新機能で DNS SRV レコードのサポートというのがあったので試してみた。 https://dev.mysql.com/doc/refman/8.0/en/connecting-using-dns-srv.html MySQLサーバー3台 (a.example.com, b.example.com, c.example.com)とそれに接続するためのク…

MySQL 8.0.22 のプリペアドステートメントの非互換

MySQL 8.0.22 のリリースノートによるとプリペアドステートメントまわりに非互換があるらしい。 https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-22.html For a prepared statement of the form SELECT expr1, expr2, ... FROM table ORDER BY ?,…

オープンソースの定義について

OSS

こんな Togetter が話題になってた。 togetter.com オープンソースソフトウェアはOSIに認められたオープンソースライセンスで配布されるソフトウェアのことであり、それ以上でもそれ以下でもない これに違和感が。「オープンソースの定義(OSD)」に準拠したラ…

MySQL の接続まわりのエラー

MySQL で Host '〜' is blocked because of many connection errors が出るのってどういうときだっけ…とふと思ったので接続周りを調べてみた。 クライアントごとの連続接続失敗によるブロック マニュアル https://dev.mysql.com/doc/refman/8.0/en/blocked-h…

MySQL Parameters - プラグインとコンポーネントを有効にして Variable も追加

MySQL Parameters というページを公開してたら @tmtms still love this https://t.co/388NNoxxfr but would be so cool to have group_replication parameters too ;-)— lefred (@lefred) 2020年7月24日 と言われたんだけど、mysqld --no-defaults --help --…

Miアカウントに「+」が含まれているとパスワードをリセットできない

諸般の事情によりMiアカウントを作った。 Miアカウントについてはこの辺参照。 win-tab.net メールアドレスで作れるんだけど、この手のやつはローカルパートに "+サービス名" をつけて作ってるので、今回も ほげほげ+mi@gmail.com で作った。 スマホで入力し…

Xiaomi Redmi Note 9S のクイック設定パネルのリセット方法

1ヶ月ほど Redmi Note 9S を使ってて、クイック設定パネルのアイコンの並び替えができないことに気がついた。 どうやら通常は「編集」というアイコンがあるらしいんだがそれがない。 どうも初期セットアップ時に Google アカウント連携して設定を引き継ぐと…