linux搭建mysql主从服务自动复制数据

mysql安装可参考http://blog.csdn.net/liqi_q/article/details/78158532

mysql主配置文件参数详解可参考http://blog.csdn.net/l1028386804/article/details/50827148

一.搭建mysql的master-slave环境

1)分别在host1(10.10.10.168)和host2(10.10.10.171)上安装mysql(5.0.45),具体安装方法可见官方文档

2)配置master

首先编辑/etc/my.cnf,添加以下配置:

innodb_file_per_table = 1
datadir = /data/mydata 数据库安装之后的数据存放目录
log-bin=/data/binlogs/mysql-bin slave会基于此log-bin来做replication
server-id=1       1代表master  
sync_binlog=1 
binlog-do-db = amoeba_study  需要同步的数据库
general_log=ON   开启日志
general_log_file=/data/logs/mysql_log/mysql.log   日志存放目录

log-slave-updates=true
master-info-repository=TABLE
relay-log-info-repository=TABLE
sync-master-info=1
slave-parallel-workers=2
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1


主服务10.10.10.168下然后添加专门用于replication的用户:

mysql -uroot -proot -h 127.0.0.1 进入到mysql命令模式

允许10.10.10.171服务IP地址访问,使用repl用户 访问密码111111

mysql> GRANT REPLICATION SLAVE ON *.* TO [email protected] IDENTIFIED BY '111111';

重启mysql,使得配置生效:

/etc/init.d/mysqld restart

最后查看master状态:

linux搭建mysql主从服务自动复制数据

3)配置slave

首先编辑/etc/my.cnf,添加以下配置:

server-id=2 #slave的标示

总的添加内容如下:

innodb_file_per_table = 1
datadir = /data/mydata
log-bin=/data/binlogs/mysql-bin
server-id=2  此处为slave
general_log=ON  
general_log_file=/data/logs/mysql_log/mysql.log

log-slave-updates=true
master-info-repository=TABLE
relay-log-info-repository=TABLE
sync-master-info=1
slave-parallel-workers=2
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1

配置生效后,配置与master的连接:

从服务连接主服务10.10.10.168添加专门用于replication的用户:

mysql -uroot -proot -h 127.0.0.1 进入到mysql命令模式

stop slave;

CHANGE MASTER TO MASTER_HOST='10.10.10.168',MASTER_USER='repl',MASTER_PASSWORD='111111',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=120;


重点说下MASTER_LOG_POS、MASTER_LOG_FILE这两个参数需要根据主服务执行show master status返回的结果中对应填写否则数据不同步

其中MASTER_HOST是master机的ip,MASTER_USER和MASTER_PASSWORD就是我们刚才在master上添加的用户,MASTER_LOG_FILE和MASTER_LOG_POS对应与master status里的信息

最后启动slave:

mysql> start slave;

4)验证master-slave搭建生效

通过查看slave机的log(/data/logs/mysql_log/mysql.log

linux搭建mysql主从服务自动复制数据