【问题标题】:master to slave replication in mysqlmysql中的主从复制
【发布时间】:2012-08-25 00:12:02
【问题描述】:

我需要在 mysql 中进行主从复制。

所以我正在创建这个过程以通过过程动态更改主控

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;
//

但我遇到了一个错误。

ERROR 1064 (42000):您的 SQL 语法有错误;检查 与您的 MySQL 服务器版本相对应的手册 在 'host_ip, MASTER_PORT=3306, 附近使用的语法, MASTER_USER='复制', MASTER_PASSWORD='从属'; s' 在第 4 行

如果我把它留空就好了

例如。

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

我尝试了很多次,但在这个查询中我无法使用任何变量 为什么?

如果你知道帮助我。

谢谢。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    主机值必须用引号引起来。 我认为除非您使用准备好的语句,否则这是不可能的。

    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 ;
    

    问候! 尖刺倒钩

    【讨论】:

      猜你喜欢
      • 2014-07-07
      • 2012-09-14
      • 2012-10-16
      • 1970-01-01
      • 1970-01-01
      • 2015-05-26
      • 2011-11-24
      • 1970-01-01
      • 2018-10-12
      相关资源
      最近更新 更多