この記事では、素晴らしいPercona Server(Oracle MySQLベース)をバージョン5.6からバージョン5.7にアップグレードした経験を共有したいと思います。
おそらく既にご存知のように、Oracle MySQL 5.7の安定版リリースはすでにリリースされており、Perconaからの改良版がリリースされています。 改善された機能の一覧(Oracleと比較したPercona Server)を参照するには、 https ://www.percona.com/software/mysql-database/percona-server/feature-comparisonをご覧ください 。
MySQL 5.7全体の新機能のリストは、 https : //dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.htmlにあります 。
だから、トピック:痛みのないアップグレードを行う方法?
次に、このプロセスで踏んだレーキをリストします。
甲
Apparmor(Ubuntuでデフォルトで有効)を使用する場合、次の2行を/etc/apparmor.d/usr.sbin.mysqldに追加する必要があります。
/var/run/mysqld/mysqld.sock.lock rw,
/run/mysqld/mysqld.sock.lock rw,
2番目のオプションは、MySQLのApparmorを完全に無効にすることです:
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
構成
- binlogを有効にしている場合、 server-id変数を必ず割り当てる必要があります。 さらに、MySQL 5.7では、 sync_binlog変数のデフォルト値は1です。これは、各トランザクション中のディスクとの同期を意味します。 バージョン5.6のデフォルトの動作を維持する場合は、 sync_binlog = 0を設定します 。 そうしないと、ドライブに大きな負荷がかかります。 ところで、デフォルトのbinlog形式はROWになりました。これが適切でない場合は、 binlog_format = 'STATEMENT'を指定します。
- SQLモードにも大きな変更が加えられました。ハードチェックはデフォルトで有効になっています。 ほとんどの場合、アップグレード後、ほとんどのアプリケーションは動作を停止します(少なくともこれは私には起こりました)。 古い操作モードを保存するには、変数sql_mode = "NO_ENGINE_SUBSTITUTION"を指定します。
アップグレード後
通常どおり、 mysql_upgradeコマンドを実行することをお勧めします。これにより、システムデータベースが更新され、サーバー上の他のすべてのデータベースのコンプライアンスもチェックされます。
通常どおり、テストサーバーでアップグレードし、結果を確認してから、運用サーバーに展開することをお勧めします。
成功したアップグレード!