MariaDb 主主复制

MariaDb 主主复制

我尝试在 RHEL 环境中对 mariadb-5.5.52-1 的多个数据库进行主从复制,mariadb 是 nagiosxi 应用程序的一部分。从主服务器复制到从服务器时,我遇到了许多重复错误 1602,主服务器无法用从服务器中的值覆盖。请为我提供一些有价值的来源或输入以克服该问题。

我按照这些网址进行主从复制 https://forums.mysql.com/read.php?26,171776,205870 https://tunnelix.com/simple-master-master-replication-on-mariadb/

提前致谢

答案1

嘿,Mohan,不清楚你是想让主机对主机还是主机对从机?设置主机对从机非常简单。特别是如果你已经做过一两次的话。

主人对奴隶

在这种情况下,机器 A 是主服务器。您需要编辑机器 A 上的 /etc/my.cnf 文件

在 [mysqld] 部分启用二进制日志并定义 serverID。

[mysqld]
log-bin=mysql-bin
server-id=1
innodb_flush_log_at_trx_commit=1
sync_bin_log=1

重新启动Mariadb并连接创建复制用户。

MariaDB [(none)]> create user 'repl'@'10.0.0.1' identified by 'password' ; 
MariaDB [(none)]> grant replication slave on *.* to 'repl'@'10.0.0.1'; 

锁定表并导出数据。

MariaDB [(none)]> flush tables with read lock; 

找到二进制日志位置。

MariaDB [(none)]> show master status 

创建数据库的转储。

mysqldump --all-databases --master-data -uroot -p >/tmp/master.sql 

解除表锁。

MariaDB [(none)]> unlock tables; 

将master.sql复制到从服务器。

在奴隶身上。

编辑/etc/my.cnf

[mysqld]
server-id=2 

设置从属

MariaDB [(none)]> change master to 
 -> master_host='10.0.0.2' 
 -> master_user='repl' 
 -> master_password='password' 
 -> master_log_file='mysql_bin.00001'
 -> master_log_pos=481

要获取 master_log_file 和 master_log_pos,您可以在主服务器上运行 show master status 时获取它们。 在此处输入图片描述

导入数据库备份

mysql -uroot -p </tmp/master.sql 

然后启动从属进程。

MariaDB [(none)]> start slave; 

检查从站状态 在此处输入图片描述

相关内容