mysql - mysql 中的主从复制

标签 mysql

我需要在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): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'host_ip, MASTER_PORT=3306, MASTER_USER='replication', MASTER_PASSWORD='slave'; s' at line 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 ;

问候! 蒂内尔倒钩

关于mysql - mysql 中的主从复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12193944/

相关文章:

mysql inner join查询3个表

php - MySQLi 表未创建,但其他表已创建

php - 允许用户选择数据库字段

sql - MAX 后 COUNT 时出错?

mysql 数据库设计和查询优化

python - 使用 Django 批量更新

MySQL:如果仅对 1 行进行分组,则从 GROUP BY 结果中删除行

php - 记录集中的循环列

sql - MySQL多级评论回复排序

php - 难以从两页注册中传递变量