MySQL主从配置

创建MySQL主实例

创建MySQL新实例,可以参考上篇博文: MySQL初始化与用户配置 www.cnblogs.com/qiusuo/p/9451717.html

bin-log配置

# log bin for master
server-id                = 1                     # 必须配置server-id,并且与其他相关实例不同
binlog-do-db             = dbname                # 针对那些database有log-bin,对于多个可以分行写
binlog-ignore-db         = mysql                 # 忽略那些database的log-bin,对于多个可以分行写
binlog-ignore-db         = test 

log-bin                  = mysql-bin             # log-bin的存储位置,可以是相对于datadir,也可以是绝对路径
log-bin-index            = mysql-bin.index
binlog-format            = mixed                 # binlog的格式,mixed,statement,row,默认格式是statement
expire-logs-days         = 10                    # binlog的保留天数,为0则永久保留
binlog-cache-size        = 1M
max-binlog-size          = 1G

replication用户配置

为用户增加replication权限

grant replication slave on *.* to 'user'@'host' identified by 'password';

查看主实例状态

show master status;

show master status \G;

创建MySQL从实例

拷贝主实例的数据

方法1:拷贝主实例的datadir,作为从实例的数据文件夹。

方法2:dump主实例的数据,导入到从实例中。

方法3:建立主从实例后,锁主库,导出主库,解锁主库。导入从库,开启slave同步。

保证从实例的数据状态和主实例未产生binlog前的状态一致。

replicate配置

# replicate from slave
server-id                = 2
master-host              = master-hostname
master-port              = 3306
master-user              = user
master-password          = password
replicate-do-db          = dbname
replicate-ignore-db      = test
replicate-ignore-db      = mysql

relay-log-purge          = 1                    # 自动删除无用的relay-log
relay-log-recovery       = 1 # 因异常导致relay-log错误,是否删除并重新从master获取。需配合relay-log-purge=0 relay-log = relay-log relay-log-index = relay-log.index
relay-log-info-file = relay-log.info max-relay-log_size
= 1G
log-slave-updates = 1 #启用从库日志,这样可以设置链式复制,否则从master中同步binlog的修改不会写入从库的bin-log

启用查看slave状态

slave start;

show slave status \G;

如果Slave_IO_Running和Slave_SQL_Running都是Yes,表示成功了。

首次同步方式

对主实例进行锁表操作:FLUSH TABLES WITH READ LOCK;

导出主实例数据库备份:mysqldump  --host xxxx --port xxx -u user -p password --databases dbname > db_dbname.dump

清除主实例binlog,重置master:reset master;

解锁主库:unlock tables;

将数据导入从实例:mysql  --host xxxx --port xxx -u user -p password < db_dbname.dump

启动从实例slave:slave start;

 

发布地址:www.cnblogs.com/qiusuo/p/9643174.html

posted on 2018-09-13 21:11  峰入云  阅读(140)  评论(0编辑  收藏  举报

导航