分类: Mysql/postgreSQL
2013-04-11 15:44:14
1、OS:
master: Red Hat Enterprise Linux Server release 5.4 (Tikanga)
slave: Ubuntu 12.04.1 LTS
2、mysql版本:
master: Server version: 5.0.77-log Source distribution(Redhat)
slave: Server version: 5.5.29-0ubuntu0.12.04.2 (Ubuntu)
3、IP配置:master:192.168.1.50 slave:192.168.1.133
第二部分:配置过程
1、master#cat /et/mysql/my.cnf
[mysqld]
server-id = 1
log-bin = binlog
2、master#service mysqld restart ##重起数据库服务
3、grant all on *.* to slave@… identified by 'admin'; ##创建slave账户并设置密码、赋权限
4、mysql> flush tables with read lock; ##锁表停止更新,不要退出这个终端,否则锁失效;
5、mysql> show master status; ##记录前两框的数据
+------------------------+------------+-----------------+----------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------------+------------+-----------------+----------------------+
| mysql-bin.000003 | 522 | | |
+------------------------+------------+-----------------+----------------------+
1 row in set (0.00 sec)
6、mysqldump -h 192.168.1.133 -uroot -padmin -R test_db > test_db.sql ##在slave上直接导出master的数据库
7、使用source命令导入test_db.sql文件
8、slave# service mysql stop ##在slave上进行操作,停止mysql
9、按照如下内容修改/etc/mysql/my.cnf文件
[mysqld]
server-id = 2
replicate-ignore-db = mysql ##不复制的库
replicate-ignore-db = test ##不复制的库 ##切勿增加其他内容,例如master-host之类的参数会导致系统无法启动
10、slave#service mysql start ##启动数据库
11、mysql>slave stop; ##停止同步
12、手工同步数据库
mysql>change master to master_host='192.168.1.50',
master_user='slave',
master_password='admin',
master_port=3306,
master_log_file='mysql-bin.000003', ##第五步中file列的值
master_log_pos=522, ##第五步种Position列的值
master_connect_retry=60;
14、mysql>slave start; ##开启同步
5、mysql>show slave status \G; ##检查同步状态是否正常,Slave_IO_Running、Slave_SQL_Running值应为 “Yes”。
16、mysql>show processlist \G; ##查看复制的进度
17、mysql>unlock tables; ##解除锁表,在master上执行
18、mysql> show master status; ##查看master状态
19、mysql> show slave status \G; ##查看slave状态
备注:Slave_IO_Running = NO 往往是由于权限不足导致的