2025年6月24日に開催された 『TechLION vol.41 〜コミュニティの終活〜』に呼んでいただき、出演者(登壇者)として参戦して参りました。 techlion.jp テーマが「コミュニティの終活」ということで、終わりかかっているような日本MySQLユーザ会に白羽の矢が立ったのだと思いますが、一応まだ日本MySQLユーザ会が終了するというプランはございませんので、その辺りを理解していただけましたら、この日お伝えしたかったことの半分は済んだようなものです。ということで残りの半分を・・・(と言って私の説明を開始しました(笑))。 YAPCさまさま 一緒に登壇した kobakenさん。YA…
rsync
シェルが必要(たとえば ~/.ssh/authorized_keys
で
mysqldの実効アカウントにログインできるとか)なので新規に採用は嫌な感じ。
それを飲めるなら候補の一つとしてアリな気はする。
帯域ネックなら -z
で圧縮をかけるとCPUを使いつつ転送に圧縮をかけられるが、転送後のファイルは圧縮されていない状態で現れるので保管を考えると更に圧縮する必要があって手間は手間。
binlog_transaction_compression
が有効なら最初から圧縮されているのでベター。
…
以前、以下のようなブログエントリを書いた。
MySQLの文字列比較セマンティクスは「空白埋め(PAD
SPACE)」(概ねUTF8以前)
書いた時点でタイトルは「MySQLの文字列比較セマンティクスは「空白埋め」」であり、その時点では正しかったが、最近では少し違ってきた。
例えばMySQL 8.0.x以降をLinuxにインストールした場合、過去のブログエントリのように'a'と'a
'は同一視されず、違うものと認識されるようになった。
mysql> select 'a' = 'a';
+-----------+
| 'a' = 'a' |
+-----------+
| 1 |
+-----------+
1 row in set (0.00 sec)
mysql> select 'a' = 'a '; -- 'a' の後にスペースがあると同一視されない(!)
+------------+ …
TL;DR
- http://repo.mysql.com/yum/mysql-5.7-community/el/7/SRPMS/ からSRPMファイルを持ってきてrpmbuildするのが一番楽
MySQL Product Archives で見たら、MySQL 5.7はOracle Linux(に限らずRHEL系の)8に対応したrpmはなかった。けど欲しい。
というわけで(el7用のrpmファイルでも動くような気はするけど一応) Oracle Linuxのコンテナイメージ の中でrpmbuildするメモ。
# wget http://repo.mysql.com/yum/mysql-5.7-community/el/7/SRPMS/mysql-community-5.7.44-1.el7.src.rpm
# rpm -i …
[さらに読む]
- タイトルは セキュアそうでセキュアじゃない少しセキュアな気分になれるmysql_config_editor | PPT のオマージュです
セキュアそうでセキュアじゃない少しセキュアな気分になれるmysql_config_editor
from do_aki
-
mysql_config_editor は
--password, -p
だけは引数を受け付けられなくて、常にプロンプトでパスワードを要求する- …
- それぞれのMySQLはSemisyncで正しくフェイルオーバーしたりGroup Replicationだったりで書き込みは信用できることにする
- サロゲートキー(だけ)でなくて比較可能なPRIMARY KEYが存在することにする
- 取り敢えず簡単なINSERTで考えるけどUPDATEもありそう
という前提で考え事。
FEDERATEDストレージエンジンはそもそもトランザクションをサポートしないので論外とする。
App側の2層コミットっぽいもの
2 Phase Commitはそもそもコーディネーターの障害に対する耐性がない…。
eval
{
$dbh1->begin;
$dbh1->do("INSERT INTO ..");
$dbh2->begin;
$dbh2->do("INSERT INTO ..");
};
if ($@)
{
$dbh1->rollback;
$dbh2->rollback;
}
$dbh1->commit;
### この瞬間にAppのプロセスが落ちるとダメ
$dbh2->commit; …
[さらに読む]
MySQL Bugs: #117993: cmake failed MySQL 9.3.0 + Oracle Linux 8.10 で再現しなかったらしく、フレッシュインストールで試す。
$ wget https://dev.mysql.com/get/Downloads/MySQL-9.3/mysql-9.3.0.tar.gz
$ tar xf mysql-9.3.0.tar.gz
$ cd mysql-9.3.0/
$ sudo dnf install -y cmake
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/mysql/9.3.0 -DMINIMAL_RELWITHDEBINFO=OFF -DFORCE_INSOURCE_BUILD=1
CMake Warning:
No source or binary directory provided. Both will be assumed to be the
same as the current working directory, but note that this warning will
become a fatal error in future CMake releases.
-- Running cmake version 3.26.5
-- Could NOT find Git (missing: GIT_EXECUTABLE)
-- This is .el8. as found from 'rpm -qf /'
-- Looking for a devtoolset compiler
CMake Warning at CMakeLists.txt:393 (MESSAGE):
Could not find devtoolset compiler/linker in /opt/rh/gcc-toolset-13
CMake …
[さらに読む]
日々の覚書: HeatWave MySQLがどれくらいVanilla MySQL GPL版と同じくらいか考える旅 / 読み取りレプリカ編 の続き。
読み取りレプリカを1つ足してみた。ついでなので “MySQL.8.HA” にしてみたんだけれどこれは単に無視されるのかしら…(クラスタトータルのECPUも8ECPUしか増えなかったので、たぶんこれは関係なく1台だけ足されるんだと思う)
mysql> SELECT * FROM performance_schema.replication_group_members;
+---------------------------+-----------+-------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK | …
[さらに読む]
WEB画面から作るレプリケーションの話。
「読み取りレプリカ」を “MySQL.8.Standalone” で1つ追加
ソースから観測
ソースから見ると名前解決が有効になってるのでIPアドレスはわからない。
skip_name_resolve はOFFで変えられない。
mysql> SHOW PROCESSLIST;
..
*************************** 4. row ***************************
Id: 81
User: ocirpl
Host: gh7wpmau16ovyk9e.db0vcn0.mysqlcdbnrt.oraclevcn.com:52048
db: NULL
Command: Binlog Dump GTID
Time: 107046
State: Source has sent all binlog to replica; waiting for more updates
Info: NULL
..
mysql> SHOW REPLICAS;
+------------+------+------+------------+--------------------------------------+
| Server_Id | Host | Port | Source_Id | Replica_UUID …
[さらに読む]
このへんからHeatWave MySQLが9.2から8.4のものに変わっている。
全体として sar
の代わりに使えそうなものがそろっている感じ。
2a3
> component_scheduler_tasks
53a55,57
> health_block_device
> health_process_memory
> health_system_memory
58a63,64
> lakehouse_query_stats
> lakehouse_table_query_stats
86a93,101
> rpd_column_id
> rpd_columns
> rpd_exec_stats
> rpd_mirror
> rpd_nodes
> rpd_preload_stats
> rpd_query_stats
> rpd_table_id
> rpd_tables
105a121,128
> system_cpu_stats
> system_cpu_stats_history
> system_disk_stats
> system_disk_stats_history
> system_memory_stats
> system_memory_stats_history
> system_process_stats
> system_process_stats_history
111a135,138
> tp_connections
> tp_thread_group_state
> tp_thread_group_stats
> tp_thread_state
…
[さらに読む]