From cda3efa8eec7d529ef75fbffb21bdb7b9b4985b0 Mon Sep 17 00:00:00 2001 From: flytreeleft Date: Sat, 29 Jun 2019 13:59:24 +0800 Subject: [PATCH] Fix MySQL slave node can not sync data with the master node in examples/application/mysql/mysql-statefulset.yaml: (#13054) - Ignore 'xtrabackup_slave_info' if it is an empty file. - Remove the tailing semicolon in 'xtrabackup_slave_info'. - Stop script when 'CHANGE MASTER' is failed, then rename 'change_master_to.sql.in' only when changing master is successful. --- .../application/mysql/mysql-statefulset.yaml | 25 +++++++++---------- .../application/mysql/mysql-statefulset.yaml | 25 +++++++++---------- .../run-application/mysql-statefulset.yaml | 25 +++++++++---------- 3 files changed, 36 insertions(+), 39 deletions(-) diff --git a/content/en/examples/application/mysql/mysql-statefulset.yaml b/content/en/examples/application/mysql/mysql-statefulset.yaml index e0c04007a8..b69af02c59 100644 --- a/content/en/examples/application/mysql/mysql-statefulset.yaml +++ b/content/en/examples/application/mysql/mysql-statefulset.yaml @@ -106,16 +106,16 @@ spec: cd /var/lib/mysql # Determine binlog position of cloned data, if any. - if [[ -f xtrabackup_slave_info ]]; then + if [[ -f xtrabackup_slave_info && "x$( change_master_to.sql.in # Ignore xtrabackup_binlog_info in this case (it's useless). - rm -f xtrabackup_binlog_info + rm -f xtrabackup_slave_info xtrabackup_binlog_info elif [[ -f xtrabackup_binlog_info ]]; then # We're cloning directly from master. Parse binlog position. [[ `cat xtrabackup_binlog_info` =~ ^(.*?)[[:space:]]+(.*?)$ ]] || exit 1 - rm xtrabackup_binlog_info + rm -f xtrabackup_binlog_info xtrabackup_slave_info echo "CHANGE MASTER TO MASTER_LOG_FILE='${BASH_REMATCH[1]}',\ MASTER_LOG_POS=${BASH_REMATCH[2]}" > change_master_to.sql.in fi @@ -126,16 +126,15 @@ spec: until mysql -h 127.0.0.1 -e "SELECT 1"; do sleep 1; done echo "Initializing replication from clone position" + mysql -h 127.0.0.1 \ + -e "$( change_master_to.sql.in # Ignore xtrabackup_binlog_info in this case (it's useless). - rm -f xtrabackup_binlog_info + rm -f xtrabackup_slave_info xtrabackup_binlog_info elif [[ -f xtrabackup_binlog_info ]]; then # We're cloning directly from master. Parse binlog position. [[ `cat xtrabackup_binlog_info` =~ ^(.*?)[[:space:]]+(.*?)$ ]] || exit 1 - rm xtrabackup_binlog_info + rm -f xtrabackup_binlog_info xtrabackup_slave_info echo "CHANGE MASTER TO MASTER_LOG_FILE='${BASH_REMATCH[1]}',\ MASTER_LOG_POS=${BASH_REMATCH[2]}" > change_master_to.sql.in fi @@ -126,16 +126,15 @@ spec: until mysql -h 127.0.0.1 -e "SELECT 1"; do sleep 1; done echo "Initializing replication from clone position" + mysql -h 127.0.0.1 \ + -e "$( change_master_to.sql.in # Ignore xtrabackup_binlog_info in this case (it's useless). - rm -f xtrabackup_binlog_info + rm -f xtrabackup_slave_info xtrabackup_binlog_info elif [[ -f xtrabackup_binlog_info ]]; then # We're cloning directly from master. Parse binlog position. [[ `cat xtrabackup_binlog_info` =~ ^(.*?)[[:space:]]+(.*?)$ ]] || exit 1 - rm xtrabackup_binlog_info + rm -f xtrabackup_binlog_info xtrabackup_slave_info echo "CHANGE MASTER TO MASTER_LOG_FILE='${BASH_REMATCH[1]}',\ MASTER_LOG_POS=${BASH_REMATCH[2]}" > change_master_to.sql.in fi @@ -120,16 +120,15 @@ spec: until mysql -h 127.0.0.1 -e "SELECT 1"; do sleep 1; done echo "Initializing replication from clone position" + mysql -h 127.0.0.1 \ + -e "$(