一.搭建mysql的master-slave环境
1)分别在host1(10.20.147.110)和host2(10.20.147.111)上安装mysql(5.0.45),具体安装方法可见官方文档
2)配置master
首先编辑/etc/my.cnf,添加以下配置:
log-bin=mysql-bin #slave会基于此log-bin来做replication
server-id=1 #master的标示
binlog-do-db = amoeba_study #用于master-slave的具体数据库
创建数据库:
Mysql>Create database amoeba_study;
然后添加专门用于replication的用户:
mysql> GRANT REPLICATION SLAVE ON *.* TO repl@10.20.147.111 IDENTIFIED BY '123456';
注:repl是用于连接的用户名,不一定是本机数据库名,密码不一定与本机数据库密码相同
Mysql>flush privileges;
重启mysql,使得配置生效:
#/etc/init.d/mysqld restart 或 #service mysqld restart
最后查看master状态:
3)配置slave
首先编辑/etc/my.cnf,添加以下配置:
server-id=2 #slave的标示,若有第二台从机,则server-id=3
配置生效后,配置与master的连接:
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.150',MASTER_USER='repl',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=583;
其中MASTER_HOST是master机的ip,MASTER_USER和MASTER_PASSWORD就是我们刚才在master上添加的用户,MASTER_LOG_FILE和MASTER_LOG_POS对应与配置master时show master status里的信息
最后启动slave:
mysql> start slave;
4)验证master-slave搭建生效
通过查看slave机的log(/var/log/mysqld.log):
100703 10:51:42 [Note] Slave I/O thread: connected to master 'repl@10.20.147.110:3306', replication started in log 'mysql-bin.000003' at position 161261
如看到以上信息则证明搭建成功,如果有问题也可通过此log找原因
注:主从复制中 主库的数据会复制到从库,但从库的数据不会复制到主库