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
ステートメントを許可するには、DETERMINISTIC
、NO 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 を参照してください。