Mysql

MySQL:將常式添加到從站

  • November 17, 2016

在設置 MySQL 複製時,我使用了mysqldump (without –opt –routines並 options)沒有意識到它在預設情況mysqldump--routines未啟用。

問題

  • 有什麼方法可以將常式插入從屬伺服器而不干擾複製?
  • 我是否必須通過選擇一個新的轉儲來重新做整個事情--routines

STEP 01) 您可以做的最簡單的事情是:

MYSQLDUMP_OPTIONS="--routines --all-databases --no-create-info --no-data"
echo "STOP SLAVE;" > StoredProcedures.sql
mysqldump -u... -p... ${MYSQLDUMP_OPTIONS} >> StoredProcedures.sql
echo "START SLAVE;" >> StoredProcedures.sql

步驟 02) 將 StoredProcedures.sql 移至從站

STEP 03) 將儲存過程從主站載入到從站

mysql -u... -p... < StoredProcedures.sql

試一試 !!!

警告 #1

不需要使用--single-transaction,因為儲存過程儲存在 mysql.proc 中,這是一個 MyISAM 表。

我之前有關於轉儲儲存過程的文章:

如果您覺得更冒險,請在 Slave 上試試這個:

service mysql stop
scp MasterIP:/var/lib/mysql/mysql/proc.* /var/lib/mysql/mysql/.
service mysql start

又快又髒,嗯???

注意事項 #2

您可以將 mysqldump 選項放在my.cnf

[mysqldump]
routines
triggers

那樣,--routines並且--triggers是預設的。

引用自:https://dba.stackexchange.com/questions/34699