mysql replication 环境搭建实践
时间:2009-03-24 来源:ccc77
master ip: 192.168.1.40
slave ip: 192.168.1.43
注意搭建环境按以下顺序:
1.安装完成后配置/etc/my.cnf
master: /etc/my.cnf
server-id=1
log-bin
binlog-do-db=backup
slave: /etc/my.cnf
server-id=2
master-host=192.168.1.40
master-user=backup40
master-password=backup40a
master-port=3306 #主服务器端口
master-connect-retry=60 #同步时间间隔为60秒
replicate-do-db=backup
log-bin
binlog-do-db=backup
2.分别启动主、从数据库服务器
/usr/local/mysql-5.0.67/bin/mysqld_safe --user=mysql &
3.建立slave访问master的用户
master:
grant select,file,replication slave on *.* to backup40@'192.168.1.43' identified by 'backup40a' ;
flush privileges;
4.
如果master数据为空:
在主数据库服务器上建立backup ,在backup数据库里面建立数据表,在从库上面应该立即都能看到。
如果master backup库有数据:
需要执行以下操作:
1).锁主库表
(master)mysql>FLUSH TABLES WITH READ LOCK;
2).记录File和Position,从库设置将会用到
(master)mysql>SHOW MASTER STATUS ;
3).另开一个终端,打包主库
(master)/var/ # tar zcvf backup.tar.gz backup
4).拷贝上述backup.tar.gz包到从库机器数据目录,并解包
5).解锁主库表
(master)mysql>UNLOCK TABLES;
6).设置连接MASTER MASTER_LOG_FILE为主库的File
MASTER_LOG_POS为主库的Position
(slave)mysql>CHANGE MASTER TO
MASTER_HOST='192.168.1.40',
MASTER_USER='backup40',
MASTER_PASSWORD='backup40a',
MASTER_LOG_FILE='File',
MASTER_LOG_POS=Position;
7).启动SLAVE服务
(slave)mysql>slave start;
注意地方:
1.
在进行同步之前必须保证两个数据库是完全相同的,不然可能出错.
2.slave工作原理:
Slave上Mysql的Replication工作有两个线程,I/O thread和SQL thread,
I/O thread的作用是从master 3306端口上把它的binlog取过来,然后写到本地的relay-bin,
而SQL thread则是去读本地的relay-bin,再把它转换成本机Mysql所能理解的东西,于是同步就这样一步一步的完成.
决定I/O thread的是var/master.info,而决定SQL thread的是var/relay-log.info.
3.
如果更改了master服务器,
slave服务器需要修改/etc/my.cnf文件,删除master.info、relay-log.info和relay-log.index文件,重起slave.