网上有很多关于pos机同步数据,BinLog的主从同步的知识,也有很多人为大家解答关于pos机同步数据的问题,今天pos机之家(www.poszjia.com)为大家整理了关于这方面的知识,让我们一起来看下吧!
本文目录一览:
1、pos机同步数据
pos机同步数据
1、复制原理1、Master将数据改变记录到二进制日志(binary log)中,也就是配置文件log-bin指定的文件,这些记录叫做二进制日志事件(binary log events)
2、Slave通过I/O线程读取Master中的binary log events并写入到它的中继日志(relay log)
3、Slave重做中继日志中的事件,把中继日志中的事件信息一条一条的在本地执行一次,完成数据在本地的存储,从而实现将改变反映到它自己的数据(数据重放)
要求
1、主从服务器操作系统版本和位数一致
2、Master和Slave数据库的版本要一致
3、Master和Slave数据库中的数据要一致
4、Master开启二进制日志,Master和Slave的server_id在局域网内必须唯一
2、准备工作例如:A(master)、B(slave),主从两台服务器,A、B服务器上的MySQL用户名、密码均是root/123456,分别新建两个数据库test。
3、配置文件master数据库my.conf配置
[mysqld]log_bin=mysql-bin-1 #文件名mysql-bin-1server_id=1 #服务ID,用于区分服务,范围1~2^32-1#MySQL 磁盘写入策略以及数据安全性#每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去innodb_flush_log_at_trx_commit=1 #当sync_binlog =N (N>0) ,MySQL 在每写 N次 二进制日志binary log时,会使用fdatasync()函数将它的写二进制日志binary log同步到磁盘中去。sync_binlog=1binlog-do-db=test #同步数据库#mysql复制模式,三种:SBR(基于sql语句复制),RBR(基于行的复制),MBR(混合模式复制)binlog_format=MIXED #混合模式复制expire_logs_days=7 #binlog过期清理时间max_binlog_size=20M #binlog每个日志文件大小skip-name-resolvedatadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0# Recommended in standard MySQL setupsql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid
salve数据库my.conf配置
[mysqld]log_bin=mysql-bin-2 #文件名mysql-bin-2server_id=2 #服务ID,用于区分服务,范围1~2^32-1#MySQL 磁盘写入策略以及数据安全性#每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去innodb_flush_log_at_trx_commit=1 #当sync_binlog =N (N>0) ,MySQL 在每写 N次 二进制日志binary log时,会使用fdatasync()函数将它的写二进制日志binary log同步到磁盘中去。sync_binlog=1binlog-do-db=test #同步数据库#mysql复制模式,三种:SBR(基于sql语句复制),RBR(基于行的复制),MBR(混合模式复制)binlog_format=MIXED #混合模式复制expire_logs_days=7 #binlog过期清理时间max_binlog_size=20M #binlog每个日志文件大小skip-name-resolvedatadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0# Recommended in standard MySQL setupsql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid4、创建同步权限及赋权
在A(master)mysql中新建同步权限
grant replication slave on *.* to \'root\'@\'B\' identified by \'123456\';5、完成Master和Slave链接
5.1:查询master状态
show master status;
5.2:根据master状态信息,在slave上设置master信息
change master to master_host=\'A\',master_port=3306,master_user=\'root\',master_password=\'123456\',master_log_file=\'mysql-bin-2.000009\',master_log_pos=120;
5.3:开始slave的同步
开始slave的同步
start slave;
查看slave的状态
show slave status\\G;6、实践
我们在A数据库test的表example新建一条记录,观看B数据库test的表example的情况。
然后刷新slave的数据库
⚠️注意点⚠️1、my.cnf配置文件
master和slave的server_id一定不能一致。
2、在slave中设置master信息
master_log_file文件是master中的日志文件,以及master_log_pos偏移量。
3、Slave_IO_Running、Slave_SQL_Running
在查询slave的status时候,slave_io_running和slave_sql_runing两个参数必须为YES,两者缺一不可。这里有一个bug,就是默认my.cnf配置的时候,没有禁用掉mysql默认的系统数据库,也没有指定要复制的数据库名称,致使复制的时候我把整个数据库data文件夹一起复制过去了,导致了 主从服务器上的data/auto.cnf 文件内容一样auto.cnf里面记录的server-id也一模一样的重复了。
解决办法:把主服务器或者从服务器data目录下auto.cnf 里的server-id值随便改一个字母或者数字字符,保证两台DB服务器auto.cnf 中server-id不重复, 重启服务 ,即可同步,
以上就是关于pos机同步数据,BinLog的主从同步的知识,后面我们会继续为大家整理关于pos机同步数据的知识,希望能够帮助到大家!
