#
ドキュメント

Document

自分のための備忘録です。

MySQL 8 にアップグレード

MySQL Shell アップグレードチェッカーユーティリティ

MySQL 8 にアップグレードするにあたり問題がないかをチェックする。

  • 新しい予約後を使用していないか
  • utf8mb3 文字セットの使用チェック
  • sql_mode の削除されたフラグのチェック( sql_mode オプション自体は削除されていない)
  • ....
  • ....

utf8mb3

utf8mb3 ( utf8 のエイリアス)は非推奨なので utf8mb4 を使用する。

utf8 は utf8mb3 のエイリアスです。文字制限は、名前に明示的ではなく暗黙的です。

utf8mb3 文字セットは非推奨であり、将来の MySQL リリースで削除される予定です。 かわりに utf8mb4 を使用してください。 utf8 は現在 utf8mb3 のエイリアスですが、ある時点では utf8 が utf8mb4 への参照になることが予想されます。 utf8 の意味があいまいにならないように、utf8 ではなく文字セット参照に utf8mb4 を明示的に指定することを検討してください。

ref. 10.9.2 utf8mb3 文字セット (3 バイトの UTF-8 Unicode エンコーディング)

オプションのデフォルト値

MySQL 8 からデフォルト値が変更されたオプションがある。

オプション名 MySQL 5.7 デフォルト MySQL 8.0 デフォルト
character_set_server latin1 utf8mb4
collatoin_server latin1_swedish_ci utf8mb4_0900_ai_ci
default_authentication_plugin mysql_native_password caching_sha2_password
explicit_defaults_for_timestamp OFF ON
local_infile FALSE TURE
event_scheduler OFF ON

ref. 5.1.8 サーバーシステム変数

注意すべきオプション

オプション名 内容
sql_mode MySQL のサポートする SQL 構文やデータの妥当性チェックなどの動作を定義
max_connection MySQL サーバーへの最大接続数
lower_case_table_names データベースオブジェクト名の大文字/小文字の識別方法の制御
time_zone MySQL サーバーが動作するタイムゾーン

5.1.11 サーバー SQL モード

用語