- 论坛徽章:
- 0
|
MYSQL 复制范例详解
首先准备主从服务器
主A-192.168.100.1
从B-192.168.100.2
上面安装尽量为相同版本的MYSQL
如果使用不同版本时,则从库的MYSQL版本可以高于主库,反之不然
1.配置主库/etc/my.cnf
my.cnf中要有一下两句:
在[mysqld]添加如下参数
server-id = 1
log-bin
一般来说,my.cnf应该在/etc下面,如果是rpm安装,也可以在/var/lib/mysql下面。
2.锁主库表
mysql> flush tables with read lock;
注意,锁表之后,所有对于该数据库的写操作都将被禁止。
因此应该已经确切准备好下一步的操作之后,再按回车执行建议开两个窗口,
一个用于mysql,一个用于命令行
3. 备份主库数据文件
cd /dateDirectory #数据文件存放目录
cp -r mysql mysql_0227
上面假设是rpm缺省安装。在文件复制过程中,就可以进行下一步了。
[编辑]记录二进制文件位置
回到刚才的mysql窗口
mysql> show master status;
得到如下结果:
+---------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| zx-bin.000002 | 98 | | |
+---------------+----------+--------------+------------------+
[编辑]解锁
待文件复制完成,就可以解锁了
mysql> unlock tables;
此时,主库已经恢复正常工作。以后的操作不会影响master的工作了。
[编辑]在主库生成复制用户权限
mysql> GRANT REPLICATION SLAVE ON *.* TO
[email='replman'@'%']'replman'@'%'[/email]
IDENTIFIED BY 'xplus';
mysql> flush privileges;
[编辑]复制数据文件到从库
替换已经存在的从库data目录,并
chown -Rf mysql:mysql mysql
修改数据文件属性
[编辑]修改从库的my.cnf
方法同步骤1,但server_id要与其它服务器不同
[编辑]启动从库
重新启动从库
mysql >CHANGE MASTER TO
MASTER_HOST='192.168.100.1',
MASTER_USER='replman',
MASTER_PASSWORD='xplus',
MASTER_LOG_FILE='zx-bin.000002',
MASTER_LOG_POS=98;
其中,MASTER_HOST是主库IP,用户名密码在上面生成主库复制用户的命令中,日志文件名和位置在show master status步骤中得到
[编辑]启动复制
mysql >start slave
mysql >show slave status
BY:IORI
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/15758/showart_181596.html |
|