MySQL 8.
本記事では、MySQL 8.
バージョン8.4で削除された構文 
MySQL 8.
MySQL 8.
以下は、バージョン8.SHOW SLAVE STATUSを実行した際のエラーメッセージの例です。
mysql> show slave status\G ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'slave status' at line 1
削除された構文とその代替
以下の表は、削除された構文とその代替となる構文を示しています。
| 削除された構文 | バージョン8. | 
|---|---|
| START SLAVE | START REPLICA | 
| STOP SLAVE | STOP REPLICA | 
| SHOW SLAVE STATUS | SHOW REPLICA STATUS | 
| SHOW SLAVE HOSTS | SHOW REPLICAS | 
| RESET SLAVE | RESET REPLICA | 
| CHANGE MASTER TO | CHANGE REPLICATION SOURCE TO | 
| RESET MASTER | RESET BINARY LOGS AND GTIDS | 
| SHOW MASTER STATUS | SHOW BINARY LOG STATUS | 
| PURGE MASTER LOGS | PURGE BINARY LOGS | 
| SHOW MASTER LOGS | SHOW BINARY LOGS | 
オプション名の変更
また、CHANGE MASTER TOで使用されていた各種オプション名も変更されています。以下に代表的な変更を示します。
| バージョン8. | バージョン8. | 
|---|---|
| MASTER_ | SOURCE_ | 
| MASTER_ | SOURCE_ | 
| MASTER_ | SOURCE_ | 
| MASTER_ | SOURCE_ | 
| MASTER_ | SOURCE_ | 
| MASTER_ | SOURCE_ | 
| MASTER_ | SOURCE_ | 
構文が削除された背景
これらの構文が置き換わった背景には、以下の理由があります。
MySQLのレプリケーションでは長年
また、MySQL非同期レプリケーションは変更ストリームを扱う技術であり、レプリケーション構成では
詳細については、MySQL Terminology Updatesをご確認ください。
対応方法の検討
MySQL 8.SHOW SLAVE STATUSを例に解説します。
MySQLコメントを利用する
第54回 SQLコメントを使ってみようで説明されている通り、MySQLではコメント文にバージョン番号を記載することで、特定のバージョン以降でのみコマンドを実行する制御が可能です。
たとえば、MySQL 8.SHOW REPLICA STATUSを実行するには、以下のように記述します。
mysql> /*!80400 SHOW REPLICA STATUS */;
ただしこの方法では、8.SHOW REPLICA STATUSを使用し、8.SHOW SLAVE STATUSを使用するような細かい切り替えはできません。この場合は、他の方法を検討する必要があります。
prometheus/mysqld_exporterの場合  
監視ツールとして有名なprometheus/
- 最初にSHOW SLAVE STATUSを実行。
- エラーが返された場合、SHOW REPLICA STATUSを実行。
具体的なコードは以下のプルリクエストで確認できます。
この方法により、バージョン8.
Percona Toolkitの場合
Percona Toolkitは、バージョン3.
- すべてのSHOW SLAVE STATUSをSHOW ${replica_という変数に置き換え。name} STATUS 
- バージョンが8.1以上であれば ${replica_にreplicaを代入。name} 
- それ以前のバージョンでは${replica_にslaveを代入。name} 
具体的なコードは以下のコミットで確認できます。
- PT-2340 - Support MySQL 8. - 4 -percona-toolkit@5cc999ca -GitHub 
- [PT-2340] Support MySQL 8. - 4 -Percona Toolkit -perconadev. - atlassian. - net 
まとめ
今回は、MySQL 8.SHOW SLAVE STATUSのようにレプリケーション関連の構文がSHOW REPLICA STATUSに置き換わるなど、Master/
バージョンアップを検討する際は、現在使用しているツールやスクリプトを確認し、必要に応じて修正や移行計画を立てることが重要です。また、今後のMySQLの変更にも対応できるよう、公式ドキュメントやツールの更新情報を定期的にチェックすることをお勧めします。
より詳細について知りたい場合は、公式ドキュメントの リリースノートの