Myリノベ 8.0.21に参加
先日「MySQL Release note でわいわい言う勉強会 8.0.21」に参加してまいりました。
今回も最新のMySQL8.0.21のリリースノートをみんなで見ながら、思いつくままに語る会で、その中で僕は相変わらずROM専ですが参加しておりました。
流れとしては坂井さんがオープニングトーク、次にまつさんが …
[さらに読む]yoku0825 さんが、面白そうなブログを書いていました。 yoku0825.blogspot.com MySQLの auto_increment 列は キーカラムである必要がありますが、このキーは複合キーでも構わない。ただし 複合キーの場合は、InnoDB ではキー指定のうちの1つめのカラムである必要があり、MyISAMなら2つめ以降のカラムでも良い、という違いがあるそうです。 mysql> create table tt1 (c1 integer auto_increment, c2 integer, c3 integer, key(c2, c1, c3)) engine=innodb;…
TL;DR
SELECT table_schema, table_name, column_name,
seq_in_index FROM information_schema.statistics WHERE
(table_schema, table_name, column_name) IN (SELECT
table_schema, table_name, column_name FROM
information_schema.columns WHERE extra LIKE '%auto_increment%')
AND (table_schema, table_name, column_name) NOT IN (SELECT
DISTINCT table_schema, table_name, column_name FROM
information_schema.statistics WHERE seq_in_index = 1);
mysqldump --no-data で引っこ抜いて
sed 's/MyISAM/InnoDB/' してテキトーなところにリストアしてみればいいと思うよ
…
[さらに読む]TL;DR
mysql.role_edges テーブルと
mysql.default_roles テーブルがマスターとスレーブでズレる
8.0.15を使ってレプリケーションを組んでいたらハマった。
バイナリログへの記録がそもそもおかしいことになる。
mysql> SELECT @@version;
+-----------+
| @@version |
+-----------+
| 8.0.17 |
+-----------+
1 row …[さらに読む]
TL;DR
DEBUG_SYNCとは、デバッグビルドのmysqldの中だけでブレークポイントみたいなものを設定して、ブレークポイントに差し掛かったら他のコネクションを使って操作を試してみられる…と思ってもらえれば多分大丈夫。
ただし任意の箇所でブレークできるわけではなく、コードの中に埋め込まれた “synchronization points”
の場所にだけ仕掛けられる。以下、わかりやすさ優先で ブレークポイント と呼ぶことにする。
基本的な使い方はこんな感じ。