主从配置

  1. 修改master的/etc/mysql/my.cnf

    [mysqld] 放在该标签下

    replicate

    server_id = 1 编号

    replicate database

    作为主机的配置

    binlog-do-db = db # 要给从机同步的库
    binlog-do-db = db2 # 要给从机同步的库
    binlog-ignore-db = mysql # 不给从机同步的库
    expire_logs_days = 2 # 自动清理 2 天前的log文件,可根据需要修改
    log_bin = mysql-bin 打开日志(主机需要打开),这个mysql-bin也可以自定义,这里也可以加上路径,如:/home/www/mysql_bin_log/mysql-bin

  2. 进入数据库,添加同步用户

    shell>mysql -uroot -p
    mysql>create user ‘repl’@’%’ identified by ‘password’;
    mysql>grant replication slave on . to ‘repl’@’%’;

  3. 查看主数据库信息

    mysql>show master status\G
    ******* 1. row *******
    File: mysql-bin.000001
    Position: 154
    Binlog_Do_DB: test
    Binlog_Ignore_DB:
    Executed_Gtid_Set:

  4. 配置从库[该方式在5.1.7之后就不再支持]

    作为从机的配置

    master-host = x.x.x.x# 目标主机IP
    master-user = user # 目标主机用户名
    master-password = password# 目标主机密码
    master-port = 3306 # 目标主机端口
    master-connect-retry = 60 # 链接重连间隔(单位s)
    replicate-ignore-db = mysql # 不从主机同步的数据库(多个写多行)
    replicate-do-db = db1 # 要从主机同步的库(多个写多行)
    replicate-do-db = db2# 要从主机同步的库(多个写多行)
    log-slave-update # 启用从机服务器上的slave日志功能,使这台计算机可以用来构成一个镜像链(A->B->C)
    slave-skip-errors # 跳过错误,从机一般应该配置该项

  5. 也可以通过以下命令配置从库同步用户,注意数据类型,有些不需要添加单引号
    shell>mysql -uroot -p
    mysql>change master to master_host =’localhost’,master_port=3306,master_user=’repl’,master_password=’mysqlOceanKing_123’,master_log_file=’mysql-bin.000001’,master_log_pos=154;
    mysql>start slave;如果已经启动,需要stop slave
  6. 以前的数据不会同步,只有从库开始监听主库后,新增的数据才会同步!!!
  7. 配置说明

服务器的ID,必须唯一,一般设置自己的IP

server_id=205

复制过滤:不需要备份的数据库(MySQL库一般不同步)

binlog-ignore-db=mysql

开启二进制日志功能,名字可以随便取,最好有含义(比如项目名)

log-bin=edu-mysql-bin

为每个 session 分配的内存,在事务过程中用来存储二进制日志的缓存

binlog_cache_size=1M

主从复制的格式(mixed,statement,row,默认格式是 statement)

binlog_format=mixed

二进制日志自动删除/过期的天数。默认值为 0,表示不自动删除。

expire_logs_days=7

跳过主从复制中遇到的所有错误或指定类型的错误,避免 slave 端复制中断。

如:1062 错误是指一些主键重复,1032 错误是因为主从数据库数据不一致

slave_skip_errors=1062

作为从服务器时的中继日志

relay_log=edu-mysql-relay-bin

log_slave_updates 表示 slave 将复制事件写进自己的二进制日志

log_slave_updates=1

主键自增规则,避免主从同步ID重复的问题

auto_increment_increment=2 # 自增因子(每次加2)
auto_increment_offset=1 # 自增偏移(从1开始),单数

你可能感兴趣的:(mysql)