mysql 创建复制账号_MySQL 复制(二:配置) | 剑花烟雨江南
为MySQL服务器配置复制非常简单。但由于场景不同,基本的步骤还是有所差异。最基本的场景是新安装的主库和备库,总的来说分为以下几步:
在每台服务器上创建复制账号
配置主库和备库。
通知备库连接到主库并从主库复制数据。
一、配置复制账号
MySQL会赋予一些特殊的权限给复制线程。在备库运行的I/O线程会建立一个到主库的TCP/IP连接,这意味着必须在主库创建一个用户,并赋予合适的权限。备库I/O线程以该用户名连接到主库并读取其二进制日志。通过如下语句创建用户账号:
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.*
-> TO repl@'192.168.0.%' IDENTIFIED BY 'password';
二、配置主库和备库
假设主库是服务器server1,需要打开二进制日志文件并制定一个独一无二的服务器ID(server ID),在主库的my.conf 文件中增加或修改如下内容:
log_bin = mysql-bin
server_id = 10
如果之前没有在MySQL的配置文件中指定log-bin选项,就需要重启MySQL备库也需要在my.conf中增加类似的配置,并且同样重启服务器。
log_bin = mysql-bin
server_id = 2
relay_log = /var/lib/mysql/msqyl-reply-bin
log_slave_updates = 1
read_only = 1
从技术上来讲,上述的参数只有server_id是必要的。
relay_log 指定中继日志的位置和命名
lpg_slave_updates 允许备库将其重放的时间也记录到自身的二进制日志中,这会为备库增加额外的工作。例如:当配置错误时可能会导致备库数据被修改。 如果可能的话,最好使用read_only配置选项,该选项会阻止任何没有特权权限的线程修改数据。
三、启动复制
这一步不要通过修改 my.conf 来配置,而是使用 CHANGE MASTER TO语句,该语句完全替代了my.conf中相应的设置,并且允许以后指向别的主库时无需重启备库。命令如下:
mysql> CHANGE MASTER TO MASTER_HOST = 'sever1',
-> MASTER_USEER = 'repl',
-> MASTER_PASSWORD = 'password',
-> MASTER_LOG_FILE = 'mysql-bin.000001',
-> MASTER_LOG_POS = 0;
MASTER_LOG_POS 参数设置为0,因为要从日志的开头读取。
运行如下命令开启复制:
mysql> START SLAVE;
四、从另一个服务器开启复制
前面的设置都是假定主备库均为刚刚安装好且都是默认的数据,也就是说两台服务器上的数据相同,并且知道当前主库的二进制日志。在实际场景中,都是已经运行了一段时间的主库,然后用一台新安装的备库与之同步,此时这台备库并没有数据。
有一下几种办法可以用来初始化备库或者从其他服务器克隆数据到备库。包括从主库复制数据、从另外一台备库克隆数据,以及使用最近一次备份来启动备库,需要三个条件来让主库和备库保持同步:
在某个时间点的主库数据快照
主库当前的二进制日志文件,和获得数据快照时在该二进制日志文件中的偏移量,我们把这两个值成为 日志文件坐标(log file coordinates)。通过这两个值可以确定二进制日志文件的位置。可以通过 SHOW MASTER STATUS 来获取。
从快照时间到现在的二进制日志。
下面是一些从别的服务器克隆备库的方法:
冷备份
最基本的方法是关不主库,把数据复制到备库。重启主库后,会使用一个新的二进制日志文件,我们在备库通过执行 CHANGGE TO MASTER 指向这个文件的起始处。
热备份
如果仅使用了 MyISAM表,可以在主库运行时使用 mysqlhotcopy或 rsync来复制数据。
mysqldump
如果只包含InnoDB表,那么可以用 mysqldump命令来转储主库数据并将其加载到备库,然后设置相应的二进制日志文件。
快照或者备份
Xtrabackup
另外的备库
注:不管选择哪种技术,都要能熟练运用,要记录详细的文档或编写脚本。因为可能不止一次需要做这样的事情,甚至当错误发生时,能够快速排查和处理。
mysql 创建复制账号_MySQL 复制(二:配置) | 剑花烟雨江南相关推荐
- mysql创建读写账号_mysql创建读写账号及服务相关优化配置
grant select on xoms_prod.* to 'kzcf'@'%' identified by '123456'; 赋权 多权限就 grant select,update,dele ...
- mysql 复制 错误_Mysql复制错误error
尝试配置 mysql 复制的时候使用 show slave status\G 出现下面的错误: [ERROR] Slave I/O: Master commandCOM_REGISTER_SLAVE ...
- 以下关于mysql复制关系_MySQL 复制
MySQL复制介绍 •MySQL复制允许将主实例(master)上的数据同步到一个或多个从实例(slave)上,默认情况下复制是异步进行的,从库也不需要一直连接到主库来同步数据 • MySQL复制的数 ...
- mysql 环形复制_MySQL 复制(五:拓扑结构) | 剑花烟雨江南
可以在任意主库和备库之间建立复制,只有一个限制: 一个备库只能有一个主库. 前面已经介绍了如何为一个主库设置一个备库,接下来介绍其他比较普遍的拓扑结构以及优缺点.记住以下原则: 1)一个MySQL 备 ...
- Mysql创建子账号以及权限设置
一.连接Mysql(我用的工具是Xshell6) 命令: mysql -uroot -p 二.创建子账号 创建一个用户名为test,密码为123456的子账号. 命令: CREATE USER 't ...
- mysql连接主备_mysql主备配置方法
1. 选择两台机器(这里选的centos6.5 final),安装相同版本的mysql yum installmysql ;yum install mysql-server; 2. 启动mysql s ...
- mysql创建函数失败_MYSQL创建函数出错如何解决
在使用MySQL数据库时,有时会遇到MySQL函数不能创建的情况.下面就教您一个解决MySQL函数不能创建问题的方法,供您借鉴参考.希望能帮助到大家. 案例一: 目前在项目中,执行创建mysql的函数 ...
- mysql 创建唯一索引_Mysql创建索引
零:文章概要 这篇文章,主要是和大家一起去了解 索引,然后一起使用CREATE INDEX语法给数据库中的表创建一个索引. 一:先拿电话薄做个类比 假如,一个电话薄里面包含了一个城市的所有人的姓名和电 ...
- mysql 创建查询 删除_MYSQL数据库查询删除创建企业基本知识
数据查询语言(DQL)从表中获取数据 select + where (位置) order by(排序) group by haveby 查询用户:select user,host,passwo ...
最新文章
- .net中如何同步获取数据方式增加一样数据自动刷新列表_期待已久的动态数据库工具终于来了!...
- 金融类APP不得强制读取通讯录
- 给VIM安装YouCompleteMe插件
- select标签中option的显示隐藏控制(兼容IE)
- 接口和抽象类是否继承了Object
- 产品经理与产品运营哪个更有前途/钱途?
- 如何给mac地址赋值_交换机工作基础——MAC地址表的构成与安全
- JDK 11 将引入低延迟 GC,大幅度缩短 GC 暂停时长
- 成功将本地文件添加到github仓库
- Fl Studio真的不如Cubase或者Logic Pro等电音软件专业吗?
- python求解最大子序列乘积问题,子序列可连续也可不连续
- linux内核之进程调度
- eclipse导入静态网页模板+搭建springboot环境示例+细节问题解决(详细)
- 针对初学者的 MQL 5 中的自定义指标
- python查成绩_方正教务处自动抢课查成绩(python版)(一)
- 计算机专业对未来职业的理想追求,IT行业个人职业生涯规划
- 《活着》余华——有庆的死亡
- java smart单点登录_SmartBi 单点登录的实现
- iPhone播放声音文件的例子
- c语言设计计算器的意义,C语言结课设计之计算器功能
热门文章
- Windows 8.1 RTM初体验
- HTML5期末大作业:网站——美丽家乡(南京介绍7个页面) 家乡文化介绍 学生DW网页设计作业源码(HTML+CSS+JS) ~学生dreamweaver网页设计作业成品
- webpack 读取文件夹下的文件_Webpack
- 在线接受短信的虚拟号码服务平台(SMS-Activate)的使用
- 杰力科创调光调色镜子灯触摸芯片——DLT8T10S
- dnspod的url转发
- 进程与线程之间的区别及联系
- UML-综合实例-网上书店
- html页面如何按需导入vant,Vant 快速上手
- 安装Oracle Enterprise Manager Cloud Control 客户端