- 筹备好两台装置好了mysql的机器(装置在不同的机器上),如果是给予虚拟机复制的机器则须要批改/var/lib/mysql/auto.cnf 文件中的uuid 确保两台机器的uuid不一样
备份主库的数据到备库 两库统一
在主库上执行(已有数据)
执行命令mysqldump -uroot -pBamboocloud@1234 -A --master-data=2 --single-transaction -R -E --triggers --max-allowed-packet=64M >/tmp/full.sql
将二进制文件导入到 /tmp/full.sql 中
关上vim /tmp/full.sql 找到正文的这一行
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000008', MASTER_LOG_POS=3050;
MASTER_LOG_FILE和MASTER_LOG_POS的值记录下来留作备份前面主从复制的时候要用到
而后将full.sql传输到备库所在的机器上
scp /tmp/full.sql root@10.88.1.184:/tmp
连贯到备库的mysql
执行下列命令:
敞开二进制文件
同步数据
开启二进制文件
set sql_log_bin =0;source /tmp/full.sqlset sql_log_bin =1;
此时数据同步实现
别离配置主备库的mysql配置文件
server_id=1 #指定MySQL的id log-bin=mysql-bin #开启二进制日志文件auto_increment_increment=2auto_increment_offset=1port=13306sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES -- sqlmode须要设置为非严格模式否则程序可能会报错 见https://www.cnblogs.com/zhoujinyi/p/8035413.htmllower_case_table_names=1default-storage-engine = INNODB# mysql 主从幂等模式slave_exec_mode=IDEMPOTENT# 跳过指定谬误slave-skip-errors=1032,1062 #疏忽谬误# 更新快的表不同步先replicate-ignore-table=bim.qrtz_scheduler_statereplicate-ignore-table=bim.tb_jgroupsping
- 配置主从
a) 在主库上创立可供复制的非凡账号 创立语句如下GRANT REPLICATION SLAVE ON *.* to 'replication'@'%' identified by 'Bamboocloud@1234';
而后在从库上执行下列sql;
CHANGE MASTER TO MASTER_HOST = '10.88.1.73', MASTER_USER = 'replication', MASTER_PORT =13306, MASTER_PASSWORD = 'Bamboocloud@1234', MASTER_LOG_FILE = 'mysql-bin.000008', MASTER_LOG_POS = 3050;
master_host是主服务器的ip
master_port=13306(这里没有配置,默认3306)
master_user:Master 服务器受权用户,也就是 Master 后面创立的那个用户
master_password:Master 服务器受权用户对应的明码
master_log_file:Master binlog 文件名
master_log_pos:Master binlog 文件中的 Postion 值 这个值代表从库从主库同步数据的节点(终点)
查看无误后则在从库能够开启线程
start slave;
而后查看状态
show slave status;
次要查看项:
slave_io_running 和 slave_sql_running 两个项,都为YES
则代表胜利了,这时候主库会同步数据到从库.
留神点
如果后续程序运行过程中show slave status;发现两个指标有一个为NO,则阐明程序断开了,须要查看 /var/log 下的mysql的日志,查看报错的起因,能够在配置文件my.cnf中指定主从复制为幂等模式 并跳过指定的谬误
# mysql 主从幂等模式slave_exec_mode=IDEMPOTENT# 跳过指定谬误slave-skip-errors=1032,1062 #疏忽谬误
配置主主复制同主从,只不过是在主机(从机)上反向配置一遍即可.
在相同的一台机器上给另外的一台机器配置可供主从复制的非凡账号GRANT REPLICATION SLAVE ON *.* to 'replication'@'%' identified by 'Bamboocloud@1234';
用 show master status; 查看 master_log_file 和master_log_pos
并在下列命令中替换即可
CHANGE MASTER TO MASTER_HOST = ${masterip},
MASTER_USER = ${masteruser},
MASTER_PORT = ${masterport},
MASTER_PASSWORD = ${masterpassword},
MASTER_LOG_FILE = ${master_log_file},
MASTER_LOG_POS = ${和master_log_pos};