模仿 mysql slave_Mysql实现Master-Slave复制 同步

Mysql可以通过Master-Slave来实现数据的拷贝,这也是数据库读写分离的主要实现方式。

这几天试了一下Master-Slave的方式,把主要的要点总结一下,如果要看详细的,参考mysql的帮助。

我的测试服务器是两台ubuntu的机器,MASTER IP:192.168.1.100 SLAVE IP:192.168.1.101

1.要安装兼容版本的mysql,我这里在ubunut下,直接apt-get了一个mysql,安装的版本为

shell$ mysql -V

mysql  Ver 14.14 Distrib 5.1.41, for debian-linux-gnu (i486) using readline 6.1

端口默认3306

2.在主库上新建一个库 create database  testdb;

新建一张表 create table t_test1(id int,name varchar(32));

插入几条数据

3.mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.101' IDENTIFIED BY '123456';

4.更改主库的my.cnf

shell$vi /etc/mysql/my.cnf

主要修改为:

server-id               = 1  #master id  主库的id,不起用默认为1,设置m-s每一个id必须唯一

log_bin                 = /var/log/mysql/mysql-bin.log    #启用二进制日志

binlog_do_db            = testdb  #用于master-slave的具体数据库

#binlog_ignore_db       = include_database_name

保存退出重新启动mysql

5.查看主库状态

mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000006 |      207 | testdb       |                  |

+------------------+----------+--------------+------------------+

OK,主库的基本设置完成,设置从库

首先备份主库

shell$ mysqldump -uroot -p testdb>testdb.sql

传到101上去

shell$ scp -P 22218 testdb.sql user@192.168.1.101:~

登入101,创建 create database testdb;

还原

shell$ mysql -uroot -p testdb show master status;

在101上,编辑my.cnf文件

sudo vi /etc/mysql/my.cnf

server-id = 2  # mysql的一个id,每一个mysql有一个唯一的id不能重复

编辑完了之后,重启mysql。

进入mysql,关闭mysql slave : slave stop;

改变主库的连接

mysql>CHANGE MASTER TO MASTER_HOST='192.168.1.100',MASTER_USER='repl',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000006',MASTER_LOG_POS=207;

启动slave : slave start;

主库运行:

mysql>SHOW PROCESSLIST\G;

如果看到

Command: Binlog Dump

启动完成

从库也运行

mysql>SHOW PROCESSLIST\G;

看到

mysql> SHOW PROCESSLIST\G

*************************** 1. row ***************************

Id: 10

User: system user

Host:

db: NULL

Command: Connect

Time: 11

State: Waiting for master to send event

Info: NULL

*************************** 2. row ***************************

Id: 11

User: system user

Host:

db: NULL

Command: Connect

Time: 11

State: Has read all relay log; waiting for the slave I/O thread to update it

Info: NULL

说明启动,接下来,我们在主库插入数据,再在从库查询是否有数据,有,就安装成功。

总结,mysql master-slave安装不是很难,主要有注意几点

1.数据库版本要兼容

2.数据库实现拷贝之前要同步

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2010-09-07 22:27

浏览 1341

分类:数据库

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值