MySQL8

知らない間にアップデートがありました。
今回メジャーアップデートですので早いうちにアップデートしないと遅れるほど難しくなりそう
ということで数日たいへんでした。
まずGTIDスレーブからアップデート
マイナーアップデートのようにzip解凍、上書きしてmysql_upgradeしたら??できない
クリーンインストしてマスターからdumpしてリストアしたらエラーだらけ
何をやってもエラーだらけなのでもうひとつ念のため5.7の非GTIDサーバを立ててから
もうえいやとサーバもアップデート

いろいろやったけどうちの場合は
非GTID5.7からdumpする際 –default-character-set=binary のオプション
GTID8へのリストアは —-default-character-set=utf8mb4 -f のオプション
が一番エラーが少ないような・・5.7はutf8で立ち上げて途中utf8mb4に変更

サーバがなんとかリストアできたので今度は8のマスターから8のGTIDスレーブへリストア
これもエラーでまくりですが
なぜか
GTID8からdumpのoption   –default-character-set=binary
GTID8へのリストアのoption –default-character-set=utf8
がエラーが一番少なかった。エラーはトリガーやストアドの中の日本語の様な気が?
なんとか今日から稼働しました。

従来の2倍の性能らしいです。

defaultの文字コードはutf8mb4 4バイト絵文字、サロゲート文字がOKです。
のはずですが入力時ODBCエラー やはりODBC8が必要なのでしょうか
今のところODBC8は64bit版のみです

CTE、再帰クエリが使えるようになってます。

あとIDの再利用をしないようになったとかどこかで見ましたが未確認です。

GTIDのdumpですがGTIDへリストアする場合と非GTIDへリストアする場合とoptionを変えないといけないのは面倒くさいです。
MySQL3からMySQL5へのアップデートもたいへんでしたが今度もほどほどに難易度高かったです。

追記 mysqldumpのオプション
GTIDからGTIDへ  –triggers –routines –events
GTIDから非GTIDへ –set-gtid-purged=OFF