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;
表被同步过来,则为成功