码迷,mamicode.com
首页 > 数据库 > 详细

MySQL数据库主从同步

时间:2015-06-30 15:03:39      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

1,准备工作
准备两台机器 ,各自安装一个 MySQL数据库 。比如

10.254.141.23 作为主数据库
10.254.166.60 作为从数据库

安装MySQL数据库参考 《MySQL数据库安装》
2,主库开启binlog
看主库上,是不是开启了 binlog ,主从同步需要开启这个。
mysql> show master status;
技术分享

有binlog文件 ,和 当前的位置显示出来 ,说明开启了binglog ,否则需要先去开这个, 修改/etc/my.cnf ,然后重启数据库。
配置文件中加这几句
log-bin = mysql-bin
relay-log = relay-bin
binlog_format = MIXED
binlog_cache_size = 1M
3,主库上建立同步账号
在主机上 添加用于从库同步的账户
mysql> GRANT REPLICATION SLAVE ON . to ‘repl’@’%’ identified by ‘123456’;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

4,备份主库的数据
如果主服务器上 已经存在 数据, 需要先对 主库的数据进行备份, 一次性导入从库上, 然后再主从同步 ,否则会出现数据冲突。
如果是全新安装的 主从数据库, 还没有任何的数据写入, 可以跳过这一步,直接去配置主从。

4.1
先对主库数据进行备份
mysql> set sql_log_bin=0;
[root@rs1 ~]# /usr/local/bin/mysqldump -uroot -p123456 –socket=/home/mysql/mysql.sock –all-databases –single-transaction –flush-logs –master-data=2 > db.sql.2012-12-05
mysql> set sql_log_bin=1;

4.2
将备份数据复制到从服务器上
[root@rs1 ~]# scp /home/work/db.sql.2012-12-05 10.136.51.111:/home/work

在从服务器上进行数据同步:
mysql> source /home/work/db.sql.2012-12-05

5, 在从库上 配置
head -30 db.sql.2012-12-05
找到以– CHANGE MASTER TO MASTER_LOG开头的行,如下所示:
– CHANGE MASTER TO MASTER_LOG_FILE=’mysql-bin.000002’, MASTER_LOG_POS=107;
记录使用的二进制文件以及语句执行的位置。 因为要从这个位置开始 主从同步。

然后在从库上执行
mysql> slave stop;
mysql>
change master to
master_host=’10.254.141.23’,
master_user=’repl’,
master_password=’123456’,
master_port=3306,
master_log_file=’mysql-bin.000007’,
master_log_pos=107;
mysql> slave start;

看一下 从库的状态。
mysql> show slave status\G;

         Slave_IO_Running: Yes
        Slave_SQL_Running: Yes
        Seconds_Behind_Master: 0   0显示从服务器比主服务器慢多少秒

主从同步完成。

版权声明:本文为博主原创文章,未经博主允许不得转载。

MySQL数据库主从同步

标签:

原文地址:http://blog.csdn.net/u012063703/article/details/46693745

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!