MySQLクライアントでの非同期処理概略
本エントリはMySQL Advent Calendarの二日目です。
MySQLの従来のプロトコルを利用するConnectorでは非同期の対応はありませんでしたが、
MySQL 8.0.16でサポートされました。
The MySQL C API now supports asynchronous
functions for nonblocking communication with the MySQL
server
これらはもともとあるAPI関数の名称末尾に_nonblockingをつけた以下の六関数です。
・mysql_real_connect_nonblocking()
・mysql_real_query_nonblocking()
・mysql_store_result_nonblocking()
・mysql_next_result_nonblocking()
・mysql_fetch_row_nonblocking()
…
この日記は、RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2019
の2日目の記事です。
( https://qiita.com/advent-calendar/2019/rdbms_gis )
経度一度ってどれくらい?
赤道付近の一周の長さが だいたい 40,000km だというのはみんな知っていますよね。実際はもう少し長いのですが、とりあえず感覚的なものでいいです。で、経度というのは、緯度が上がっていくごとに円が小さくなりますから、1度の長さもどんどん短くなるはずです。どんな感じなのかな、と …
[さらに読む]TL;DR
- ドキュメントを読むのが面倒だから “TAB” 補完でがんばってみた
- 優秀
この記事は MySQL Advent Calendar 2019 の1日目の記事です!
MySQL Shell は遊んでみたいけど、ドキュメントは読みたくない(面倒だから)
タブ補完だけでどんなメソッドがあるか探索しにいく!
$ mysqlsh
MySQL Shell 8.0.18
Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.
Type '\help' or '\?' for help; '\quit' to exit.
MySQL JS > a^C
…
[さらに読む]
TL;DR
-
みんなだいすきCLONEプラグインを使って本番のマスター(稼働中)から本番のスレーブ(諸事情により再構築が必要だった)を作った。
- 何度かリトライはしたけど、ちゃんと動いているような気がする
-
CLONE INSTANCE FROM ..
を実行するターミナルはtmux
などで切断から保護しましょう…
CLONEプラグインって何的な人は先にこっちを読んでいただくと良いかも知れない。
取り敢えず
…
TL;DR
- innodb_autoinc_lock_mode のデフォルトはMySQL 8.0で2になった(5.7とそれ以前は1)
- innodb_autoinc_lock_mode= 2だとステートメントベースのレプリケーションではアンセーフだ 、というのはよく語られるけど
-
INSERT INTO .. SELECT ..
やLOAD DATA ..
でauto_incrementで連番を払い出すようなステートメント同士が競合すると、1と2で差が出る-
SELECT LAST_INSERT_ID()
からの、SELECT .. WHERE id > …
-
以前、接続が溢れているとき(too many connectionsエラー発生時)でも接続可能にする Administrative Network Interface(管理NW IF) の概要をブログに書きました。この時は、特権アカウントの接続元との関連は書かなかったのですが、特権アカウントの接続元をローカルのみに絞りたい場合、少し考えないといけないことがありました。
特権アカウントはローカル接続のみとしたい
特権アカウントはローカル接続のみとしている(特権で接続するためにDBサーバへのSSHログインを前提とする)場合に、どのように管理用IFを設定すれば良いか試してみました。
ダメな設定
# /etc/my.cnf …[さらに読む]