赞
踩
1、主服务器(master)将变更事件(更新、删除、表结构改变等等)写入二进制日志(master log)。
2、从服务器(slave)的IO线程从主服务器(binlog dump线程)获取二进制日志,并在本地保存一份自己的二进制日志(relay log)
3、从服务器的SQL线程读取本地日志(relay log),并重演变更事件。
1、可以作为一种备份机制,相当于热备份(在从备份,避免备份期间影响主服务器服务)
2、可以用来做读写分离,均衡数据库负载(主写从读)
3、当主服务器出现问题时,可以切换到从服务器。
服务器:contos7.6
mysql版本:5.7.33
主库ip:10.255.53.46
从库ip:10.255.53.47
vim /etc/my.cnf
[mysqld] lower_case_table_names=1 character-set-server=utf8 #开启日志 log-bin = mysql-bin #设置服务id,主从不能一致,一般设置为ip最后一段 server-id = 46 #设置需要同步的数据库 binlog-do-db=mypay #屏蔽系统库同步 binlog-ignore-db=mysql binlog-ignore-db=information_schema binlog-ignore-db=performance_schema [client] default-character-set=utf8 [mysql] default-character-set=utf8
登录主库,执行如下命令
#创建同步帐号db_sync,密码db_sync
GRANT REPLICATION SLAVE ON *.* TO 'db_sync'@'%' IDENTIFIED BY 'db_sync';
#更新数据库权限
flush privileges;
show master status;
记录一下File信息和Position信息
vim /etc/my.cnf
[mysqld] lower_case_table_names=1 character-set-server=utf8 #开启日志 log-bin = mysql-bin #设置服务id,主从不能一样,一般设置为ip最后一段 server-id = 47 #主从库名相同,设置需要同步的数据库 #replicate_wild_do_table=mypay.% #从库端替换库名 replicate_rewrite_db=mypay -> mypay-slave #设置需要同步的数据库 replicate_wild_do_table=mypay-slave.% #屏蔽系统库同步 replicate_wild_ignore_table=mysql.% replicate_wild_ignore_table=information_schema.% replicate_wild_ignore_table=performance_schema.% [client] default-character-set=utf8 [mysql] default-character-set=utf8
根据主库信息,执行同步命令。MASTER_LOG_FILE为File信息、MASTER_LOG_POS为Position信息,从前文记录的信息中读取。
#设置主数据库ip,同步帐号密码,同步位置
CHANGE MASTER TO MASTER_HOST='10.255.53.46',MASTER_PORT=3306,MASTER_USER='db_sync', MASTER_PASSWORD='db_sync',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=1529;
#开启同步功能
mysql>start slave;
show slave status
当然当你执行完最后一条代码看到两个YES的时候就说明success!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。