MySQL Replication Slave 使用 Bash Script 來忽略錯誤語法

MySQL Replication Slave 遇到 Duplicate entry ... 等等的錯誤,需要使用下述命令跳過:

  1. STOP SLAVE;
  2. SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
  3. START SLAVE;

要寫成 Script 怎麼做呢?

MySQL Replication Slave 使用 Bash Script 來忽略錯誤語法

這篇有 PHP 版:MySQL Replication Slave 使用 PHP 來忽略錯誤語法

因為程式想要跑在本機,沒有 PHP 的環境,所以來弄個 Bash script 的版本

此 Script 裡面有 -p密碼,會造成下述的警告訊息:

  • Warning: Using a password on the command line interface can be insecure.

若要避免這個訊息,而且也比較建議的做法,還是用 mysql_config_editor 做出 .mylogin.cnf,然後把 -ppassword 拿掉。

  1. vim /usr/bin/mysql-ignore-dupkey.sh
    while ture;
    do
        if [ `mysql -u root -ppassword -e "SHOW SLAVE STATUS \G;" | grep "Duplicate entry" | wc -l` -eq 2 ] ; then
            mysql -u root -ppassword -e "STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; START SLAVE;";
        fi;
        sleep 1;
        mysql -u root -ppassword -e "SHOW SLAVE STATUS\G";
    done
  2. chmod +x ./mysql-ignore-dupkey.sh
  3. ./mysql-ignore-dupkey.sh

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料