创建一个已经存在数据的MySQL复制

1.配置master库
必须开启二级制日志和分配唯一的server id
·如果没设置server-id或将其设置为0,master节点会拒绝slave的连接
·建议在master节点设置innodb_flush_log_at_trx_commit=1和sync_binlog=1,保证复制环境事务的持久性和一致性
·不要在master节点开启skip-networking,否则网络断开后,slave节点就无法连接到master节点

[mysqld]
log-bin=mysql-bin
server-id=1

2.master库中创建用于复制的用户

建议创建一个单独的用户用于复制(用户名和密码都会被存放在一个纯文本文件master.info中)

mysql> create user ‘repl‘@‘%.mydomain.com‘ identified by ‘slavepass‘;
mysql> grant replication slave on *.* to ‘repl‘@‘%.mydomain.com‘;

3.获取master的当前状态

启动复制必须要告诉slave节点从哪里开始复制,即master节点的二进制日志的当前位置

(1)在master节点,开启一个会话执行以下命令:

mysql> flush tables with read lock;

执行该命令会flush所有的表并阻塞其它对master的写操作。如果是innodb表,也会阻塞提交操作。
(2)在master节点,开启另一会话执行以下命令:

mysql > show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 73       | test         | manual,mysql     |
+------------------+----------+--------------+------------------+

4.配置salve库

配置唯一的server-id 澡slave节点可以不开启二进制日志,但是开启了二进制日志后,可以在slave节点进行数据备份和crash恢复操作

如果开启参数report-host=hostname,则可以在master节点使用命令"show slave hosts"

[mysqld]
server-id=2

5.数据同步

取决于用那种方式进行数据同步

用mysqldump

(1)导出数据

 shell> mysqldump --all-databases --master-data > fulldb.dump 

--master-data参数会在salve节点自动加上"change masterto"操作。

如果没有使用该参数,需要在执行mysqldump之前执行"flush tables with read lock"命令,获取二进制日志的位置,以及"change master to"等操作,mysqldump执行完毕后还要手动释放锁。

(2)启动slave,加上参数--skip-slave-start(不开启复制)

(3)导入数据

shell> mysql < fulldb.dump

用裸数据文件快照

如果数据库较大,拷贝裸数据文件的效率会比mysqdump快。 最好是shutdown database进行冷拷贝

(1)将数据文件拷贝解压到相应的目录

(2)启动slave,加上参数--skip-slave-start(不开启复制)

6.使用master位置信息配置slave(二进制文件的名称和位置)

mysql> change master to
    ->     master_host=‘master_host_name‘,
    ->     master_user=‘replication_user_name‘,
    ->     master_password=‘replication_password‘,
    ->     master_log_file=‘recorded_log_file_name‘,
    ->     master_log_pos=recorded_log_position;

7.启动slave

时间: 2024-08-25 01:27:35

创建一个已经存在数据的MySQL复制的相关文章

创建一个List获取数据的lookup

第一步,在类:syslookup中新建方法 public static client void lookupList(FormStringControl _formStringControl, List _valueList, str _columnLabel = '') { Args args; FormRun formRun; ; if (_formStringControl && _valueList && _valueList.typeId() == Types::

(转载)使用SQL-Server创建一个银行数据管理系统Ⅰ

首先,要创建一个完整的数据管理系统,不是一蹴而就的,一定要要一步一步的来,不断完善,最终方能达到自己想要的结果,所以我在这里也是一点一点分步来做的. 创建数据库,数据库属性在这里用的是默认(不推荐使用这种偷懒的做法) 1 --创建数据库,使用默认配置 2 create database 某银行客户管理系统 3 go 创建表,共四个,分别是:客户信息,银行卡信息,业务类型,交易记录 1 use 某银行客户管理系统 2 3 4 --创建业务类型表,包含业务编号,业务名称和业务描述 5 create

使用SQL-Server创建一个银行数据管理系统Ⅰ

使用SQL-Server创建一个银行数据管理系统Ⅰ 作者声明: 刚开始写博客,难免有些不足的地方,再就是本人初涉软件开发这一行业,是个不折不扣的小白,文章中肯定也会出现一些错误的地方,希望发现错误的朋友们可以及时的指出来,不足的地方还请各路大神们多多指教,以便本人参考和学习,多谢. 首先,要创建一个完整的数据管理系统,不是一蹴而就的,一定要要一步一步的来,不断完善,最终方能达到自己想要的结果,所以兔子在这里也是一点一点分步来做的. 创建数据库,数据库属性在这里用的是默认(不推荐使用这种偷懒的做法

MySQL 复制过滤器、监控维护及主从复制的读写分离

MySQL 复制过滤器.监控维护及基于SSL的主从复制 =============================================================================== 概述: 本章将主要介绍MySQL复制中如何过滤,监控维护,以及基于SSL的主从复制,具体内容如下: MySQL 复制过滤器 ·从服务器库级别过滤 MySQL 清理日志:PURGE 复制监控 ·Master ·Slave 如何确定主从节点的数据是否一致 MySQL基于SSL的主从复制(

在Eclipse中创建一个ABAP项目

第1步:下载,安装并启动Eclipse IDE ABAP开发是在Eclipse IDE中使用自定义ABAP工具完成的.如果您尚未安装Eclipse,请下载适用于Java开发人员的Eclipse IDE,然后立即安装并启动该应用程序. 第2步:为SAP NetWeaver(ADT)安装ABAP开发工具 在Eclipse菜单栏中,选择:帮助>安装新软件... 在对话框中添加URL https://tools.hana.ondemand.com/neon(例如Eclipse Neon 4.6) 按En

用Intellij Idea创建一个普通的Java工程并用JDBC连接数据库

先创建工程. 打开Intellij Idea,创建Project,File->New->Project,如图所示: 2.指定JDK安装目录,再点击Next. 3.再次点击Next,来到如图所示地方,给项目取名,比如项目命名为:JDBCDemo,最后点击Finish. 项目创建完毕,现在演示利用JDBC来连接数据库. 1.创建一个目录,用来放mysql的驱动包,类似eclipse的lib目录:JDBCDemo->New->Directory. 2.把mysql的jar包复制过来.  

Ember——Ember 创建一个Object 对象

<!-创建好的completed模板-> <li {{action 'enterApp' appitem.id on='click'}}></li> *'enterApp'是要调用的函数名 *appitem.id 是要传给函数的参数ID名 *on='click' 是点击li触发的点击事件 一.定义一个命名空间 App = Ember.Application.create(); 二.创建一个对象 App.AppitemData=Ember.Object.extend();

创建一个数组,数组中保存一批量的学生信息,把该数组信息储存到磁盘上,并能解归档出来

/*2.创建一个数组,数组中保存一批量的学生信息,把该数组信息储存到磁盘上,并能解归档出来*/ #import <Foundation/Foundation.h>#define path @"/Users/qianfeng/Desktop/hehe/5.plist"int main(int argc, const char * argv[]) {    @autoreleasepool {                NSMutableArray *marray = [[

mysql5.7基础 创建一个新的数据库

镇场文:       学儒家经世致用,行佛家普度众生,修道家全生保真,悟易理象数通变.以科技光耀善法,成就一良心博客.______________________________________________________________________________________________________ Operating System:UbuntuKylin 16.04 LTS 64bitmysql: Ver 14.14 Distrib 5.7.17, for Linux (