Mysql主从复制

centos6.5 (base redhat):
server 1: 10.144.255.45 主
server 2:    10.163.189.82 从

主服务器配置:my.cnf
       [mysqld]
datadir = /mnt/mysql/data
port        = 3306
socket        = /mnt/mysql/mysql.sock
collation_server = utf8mb4_unicode_ci
character_set_server = utf8mb4
lower_case_table_names=1
skip-external-locking
key_buffer_size = 512M
max_allowed_packet = 4M
table_open_cache = 512
sort_buffer_size = 8M
read_buffer_size = 4M
read_rnd_buffer_size = 16M
myisam_sort_buffer_size = 64M
thread_cache_size = 128
max_connections=1024
query_cache_size = 64M
# Try number of CPU's*2 for thread_concurrency
lower_case_table_names = 1
#default_character_set = utf8
init_connect='SET NAMES utf8'

# repclication db config 服务器主从备份设置
#指定数据库使用binlog二进制日志,多个,隔开
binlog-do-db=feiha
# 忽略使用binlog的数据库
binlog-ignore-db=mysql,information_schema
# 需要同步的数据库,多个写多行
replicate-do-db=数据库
# 不需要同步的数据库,多个写多行
replicate-ignore-db=information_schema
# 各不相同
server-id    = 1
# 启用log-bin
log-bin=mysql-bin
# 当一个主的出现故障,另一个接管
log_slave_updates
# 每条自动更新,安全性高,默认0
sync-binlog=1

    配置完成,重启: service mysqld restart
    
    进入mysql 控制台,查看主服务器bin-log文件(mysql-bin.00000x)和当前位置position



如果从数据库与主数据库数据不一致,需要先将主数据库数据备份至从数据,然后在查看master信息,记住bin-log 文件名和position位置,配置从数据库时需要用到

数据传输可以使用mysqldump也可以使用navicat.

       为从数据库创建访问用户:

       create user replication idenified by‘password’;

       赋权限,可以指定从服务器ip,也可以使用%表示任何ip

       grant replication slave on *.* to replication@’ip’ identified by ‘password’;

       flush privileges;


从服务器配置:my.cnf

       只需将配置文件中的service-id默认的1改成一个与其他mysql的service-id不同的数值即可。

       重启服务器,进入mysql:执行:


查看状态;


测试,在主服务器操作数据,从数据库将会改变。

       注意:有时候Slave_IO_RUNNINGNO,有可能是启用startslave前,master_pos发生了变化和输入的不一样,所以要随时查看master最新的positionFile,使用changemaster命令重新设置和启用。




数据不同步情况下,需要先锁定主库,flush tables with read lock;可以防止master_pos发生变化


mysql主从复制,经常会遇到错误而导致slave端复制中断,这个时候一般就需要人工干预,跳过错误才能继续
跳过错误有两种方式:
1.跳过指定数量的事务:
mysql>slave stop;
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1        #跳过一个事务
mysql>slave start
该种形式,会导致数据不一致,当发生错误时,后面的数据将无法同步上。数据差异较大应该将主库数据导入至从库,重新设置主从复制。
2.修改mysql的配置文件,通过slave_skip_errors参数来跳所有错误或指定类型的错误
vi /etc/my.cnf
[mysqld]
#slave-skip-errors=1062,1053,1146 #跳过指定error no类型的错误
#slave-skip-errors=all #跳过所有错误



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值