Mysql实现Master-Slave复制 同步

本文介绍了如何通过MySQL的Master-Slave复制机制实现数据库的读写分离。具体步骤包括安装兼容版本的MySQL、配置主库和从库、创建数据库及表、授权复制账号等。此外还介绍了如何检查复制状态及验证数据同步情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.数据库实现拷贝之前要同步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值