MySQL5.5 主从复制

Published on 2015 - 12 - 12

1.把MySQL主服务器中的数据库sync导入到MySQL从服务器中.

导出步骤

flush tables with read lock;
#数据库只读锁定命令,防止导出数据库的时候有数据写入

unlock tables;
#解除锁定

mysqldump -u root -p osyunweidb > /bak/sync.sql
#导出数据库

倒入步骤

create database sync;
use sync
source  /bak/sync.sql
#导入备份文件到数据库

测试在从服务器上登录到主服务器

mysql -u sync -h 192.168.21.169 -p

2.配置MySQL主服务器的my.cnf文件

vi /etc/my.cnf

server-id=1 
#serverid 1~32 如果没有这一行,就添加

log_bin=mysql-bin  
#启动MySQ二进制日志系统,如果没有这一行,就添加

binlog-do-db=osyunweidb
#需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行

binlog-ignore-db=mysql
#不同步mysql系统数据库

重启MySQL

service mysql restart

查看主服务器状态

show master status;
+------------------+----------+--------------+------------------+
| File             | Position |  Binlog_Do_DB| Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000019 |   7131   |     sync     | mysql            |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

注意:记住File和Position的值,后面会用到。

3.配置MySQL从服务器的my.cnf文件

vi /etc/my.cnf
server-id = 2
log-bin = mysql-bin
replicate-do-db = sync
replicate-ignore-db = mysql

重启MySQL

service mysql restart

4.在从服务器上配置主服务器信息

mysql  -u root -p  #进入MySQL控制台

slave stop;   #停止slave同步进程

change master to master_host='192.168.1.1',master_user='sync',master_password='123456',master_log_file='mysql-bin.000019' ,master_log_pos=7131;

slave start;    #开启slave同步进程

SHOW SLAVE STATUS\G   #查看slave同步信息,查找以下内容

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上这两个参数的值为Yes,即说明配置成功!

5.测试是否成功

CREATE TABLE test ( id int not null primary key,name char(20) );
#创建test表

mysql -u root -p
#进入MySQL从服务器

use sync 
show tables;
表被同步过来,则为成功