簡體   English   中英

mysql中的master到slave復制

[英]master to slave replication in mysql

我需要mysql中的master到slave復制。

所以我創建此過程以通過過程動態更改主服務器

delimiter //

CREATE PROCEDURE change_master( in host_ip varchar(50))

begin

stop slave;

CHANGE MASTER TO MASTER_HOST = host_ip, MASTER_PORT=3306, MASTER_USER='replication', MASTER_PASSWORD='slave';

start slave;

end;
//

但是我收到了一個錯誤。

錯誤1064(42000):您的SQL語法有錯誤; 檢查與MySQL服務器版本對應的手冊,以便在'host_ip,MASTER_PORT = 3306,MASTER_USER ='復制',MASTER_PASSWORD ='slave'附近使用正確的語法; 在第4行

如果我把它留空,那就好了

例如。

CHANGE MASTER TO MASTER_HOST = '', MASTER_PORT=3306, MASTER_USER='replication', MASTER_PASSWORD='slave';

我嘗試了很多次,但在這個查詢中我無法使用任何變量為什么?

如果你知道幫助我。

謝謝 。

主機值必須用引號括起來。 我認為除非你使用准備好的聲明,否則這是不可能的。

delimiter //

CREATE PROCEDURE change_master( in host_ip varchar(50))

begin

set @ssql:=concat("CHANGE MASTER TO MASTER_HOST = '",host_ip,"', MASTER_PORT=3306, MASTER_USER='replication', MASTER_PASSWORD='slave'");

stop slave;

prepare sql_stm from @ssql;
execute sql_stm;
deallocate prepare sql_stm;

start slave;

end//
delimiter ;

問候! Tinel Barb

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM