5.2. MySQL 8.0 への移行

rh-mysql80 Software Collection は、デフォルトの MySQL 実装として MariaDB 5.5 を含む Red Hat Enterprise Linux 7 で利用できます。
rh-mysql80 Software Collection は、コアシステムの mysql パッケージ、mariadb パッケージ、rh-mysql* または rh-mariadb* Software Collections と競合しません。また、複数のバージョンを同時に実行することも可能ですが、特定リソースが競合しないようにするため、ポート番号と my.cnf ファイルのソケットを変更する必要があります。 。
MySQL 8.0 には、MySQL 5.7 からしかアップグレードできないことに注意してください。以前のバージョンからアップグレードする必要がある場合は、最初に MySQL 5.7 にアップグレードしてください。MySQL 5.7 へのアップグレード方法「MySQL 5.7 への移行」を参照してください。

5.2.1. MySQL 5.7 と MySQL 8.0 間の主な相違点

rh-mysql80 ソフトウェアの収集に固有の相違点

  • Red Hat Enterprise Linux 7 のクライアントツールおよびライブラリーは、アップストリームの MySQL 8.0 バージョンでデフォルトで使用されている caching_sha2_password メソッドと互換性がないため、rh-mysql80 Software Collection が提供する MySQL 8.0 サーバーは、mysql_native_password をデフォルトの認証プラグインとして使用します。
    デフォルトの認証プラグインを caching_sha2_password に変更するには、/etc/opt/rh/rh-mysql80/my.cnf.d/mysql-default-authentication-plugin.cnf ファイルを次のように変更します。
    [mysqld]
    default_authentication_plugin=caching_sha2_password
    caching_sha2_password 認証プラグインの詳細は、アップストリームのドキュメント を参照してください。
  • rh-mysql80 Software Collection には、rh-mysql80-mysql-config-syspaths パッケージ、rh-mysql80-mysql-server-syspaths パッケージ、および rh-mysql80-mysql-syspaths パッケージをインストールする rh-mysql80-syspaths パッケージが含まれます。これらのサブパッケージは、バイナリー、スクリプト、man ページなどのシステム全体のラッパーを提供します。rh-mysql80*-syspaths パッケージのインストール後には、rh-mysql80* パッケージが提供するバイナリーおよびスクリプトの正しい機能に scl enable コマンドを使用する必要はありません。*-syspaths パッケージは、ベースの Red Hat Enterprise Linux システムと rh-mariadb102 Software Collection から対応するパッケージと競合することに注意してください。syspaths の詳細は、Red Hat Software Collections Packaging Guide を参照してください。

MySQL 8.0 の一般的な変更点

  • バイナリーロギングは、サーバーの起動時にデフォルトで有効になります。--log-bin オプションが指定されていない場合でも、log_bin システム変数はデフォルトで ON に設定されます。バイナリーロギングを無効にするには、起動時に --skip-log-bin または --disable-log-bin オプションを指定します。
  • CREATE FUNCTION ステートメントを許可するには、DETERMINISTICNO SQL、または READS SQL DATA のキーワードの中から少なくとも 1 つを明示的に指定する必要があります。指定しない場合は、エラーが発生します。
  • アカウント管理に関連する特定の機能が削除されました。つまり、GRANT ステートメントを使用して、認証、SSL、リソース制限などの特権割り当て以外のアカウントプロパティーを変更できなくなりました。アカウント作成時にに上記のプロパティーを確立するには、CREATE USER ステートメントを使用します。これらのプロパティーを変更するには、ALTER USER ステートメントを使用します。
  • クライアント側で一部の SSL 関連のオプションが削除されました。--ssl =1 または --enable-ssl の代わりに --ssl-mode=REQUIRED オプションを使用します。--ssl=0--skip-ssl、または --disable-ssl の代わりに --ssl-mode=DISABLED オプションを使用してください。--ssl- verify-server-cert オプションの代わりに --ssl-mode=VERIFY_IDENTITY オプションを使用してください。このオプションは、サーバー側では変更されないままになることに注意してください。
  • デフォルトの文字セットが、latin1 から utf8mb4 に変更しました。
  • utf8 文字セットは現時点で utf8mb3 のエイリアスになりますが、今後は utf8mb4 への参照となります。曖昧さを防ぐには、utf8 ではなく文字セット参照に utf8mb4 を明示的に指定します。
  • SET 以外のステートメントでユーザー変数を設定することが非推奨になりました。
  • 以前エラーログをシステムログに記録した log_syslog 変数は削除されました。
  • 空間データのサポートに対する互換性のない変更がいくつか導入されています。
  • GROUP BY 句の非推奨の ASC または DESC 修飾子が削除されました。特定のソート順序を生成するには、ORDER BY 節を指定します。
以前のバージョンと比較した MySQL 8.0 における詳細な変更については、アップストリームのドキュメントWhat Is New in MySQL 8.0 および Changes Affecting Upgrades to MySQL 8.0 を参照してください。