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 repl@10.10.10.171 IDENTIFIED BY '111111';
重启mysql,使得配置生效:
/etc/init.d/mysqld restart
最后查看master状态:
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)