1

私が使う

mysqlbinlog -f -v --base64-output=DECODE-ROWS mysql-bin.00001 > res.000001

私のテーブルにはvarbinaryの列があります。したがって、 res.000001 はこのように

### UPDATE db.tbl
### WHERE
###   @1=967540772
###   @2='\x10\x00c\x01\x00%...'
### SET
###   @1=967540772
###   @2='\x10\x001\x00\x00,...'

binlog は非表示の文字を 16 進数に変換し (eg "\n", "\r")、通常の文字は直接出力されることがわかりました (eg "%", "a")。何かがおかしい。この列がの場合"\x10"、binlog は出力します"\x10"(ケース 1 と呼びます)。この列がこれらの 16 進数の文字でもある"0x10"場合、binlog は"\x10"TOO を出力します (ケース 2 と呼びます)。したがって、これらの文字列の違いについて話すことはできません。

"\x10"ケース1の場合、バイナリログはバックスラッシュをエスケープするように出力する必要があると思います. これは mysql binlog のバグですか?

4

0 に答える 0