MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

17.5.1.26 レプリケーションと予約語

古いソースから新しいレプリカにレプリケートしようとしたときに、レプリカで実行されている新しい MySQL バージョンの予約語であるソースで識別子を使用すると、問題が発生する可能性があります。 たとえば、MySQL 8.0 レプリカにレプリケートしている MySQL 5.7 ソース上の rank という名前のテーブルのカラムは、RANK が MySQL 8.0 で始まる予約語であるため、問題が発生する可能性があります。

このような場合、レプリケーションはエラー 1064 で失敗する可能性があります: You have an error in your SQL syntax...(予約語を使用して名前が付けられたデータベースまたはテーブル、または予約語を使用して名前が付けられたカラムを持つテーブルが、レプリケーションから除外されていても)。 これは、レプリカが影響を受けるデータベースオブジェクトを認識できるように、実行前に各 SQL イベントをレプリカで解析する必要があるためです。 イベントが解析された後にのみ、レプリカは --replicate-do-db, --replicate-do-table, --replicate-ignore-db および --replicate-ignore-table で定義されたフィルタリングルールを適用できます。

レプリカによって予約語とみなされるソース上のデータベース、テーブルまたはカラムの名前の問題を回避するには、次のいずれかを実行します:

MySQL バージョン別の予約語の一覧については、「MySQL Server Version Reference」の「Reserved Words」を参照してください。 識別子を囲むルールについては、セクション9.2「スキーマオブジェクト名」を参照してください。