mysql管理之主从复制

复制解决的问题

负载均衡

数据备份

数据分布

升级测试

复制的工作原理

(1)master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
       (2)    slave将master的binary log events拷贝到它的中继日志(relay log);
       (3)    slave重做中继日志中的事件,将更改应用到自己的数据上。

常见的复制拓扑

一主库多备库

主库 一 分发主库 一 备库

主--主复制  (双主)

环形复制

创建复制帐号

1、在Master的数据库中建立一个备份帐户:每个slave使用标准的MySQL用户名和密码连接master。进行复制操作的用户会授予REPLICATION SLAVE权限。用户名的密码都会存储在文本文件master.info中

命令如下:

mysql > GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.*

TO [email protected]’10.100.0.200’

IDENTIFIED BY ‘1234’;

建立一个帐户backup,并且只能允许从10.100.0.200这个地址上来登陆,密码是1234。这里@后面的ip地址就是slave的ip

(如果因为mysql版本新旧密码算法不同,可以设置:set password for ‘backup‘@‘10.100.0.200‘=old_password(‘1234‘))

拷贝数据

(假如是你完全新安装mysql主从服务器,这个一步就不需要。因为新安装的master和slave有相同的数据)

关停Master服务器,将Master中的数据拷贝到B服务器中,使得Master和slave中的数据同步,并且确保在全部设置操作结束前,禁止在Master和slave服务器中进行写操作,使得两数据库中的数据一定要相同!

配置复制(刚安装的数据库)

环境一主多备master       slave1           slave2

ip          192.168.10.6192.168.10.37      192.168.10.158

service-id        6            37              158

主库配置:vim /etc/my.cnf

Log-bin=mysql-bin    //打开二进制日志

Server-id=6

Service mysqld start   //重启mysql进程

Mysql> reset master;

Mysql>grant replication slave,replication client on *.*  to [email protected]’192.168.10.%’ identified by ‘luliechu’;

Mysql> flush privileges;

备库配置:vim /etc/my.cnf

Log-bin=mysql-bin    //打开二进制日志

Server-id=37

Relay_log=mysql_relay-bin

Log_slave_updates=1

Read_only=1

Service mysqld start   //重启mysql进程

Mysql> reset master;

Mysql>change master to master_host=’192.168.10.6’,  master_user=’rep1’, master_password=’luliechu’,  master_log_file=’mysql-bin.000001’,  master_log_pos=0;

Mysql>Start slave;

查看主从复制状态

Mysql>show slave status\G

配置复制(已运行一段时间的数据库)

环境一主多备master       slave1           slave2

ip          192.168.10.6192.168.10.37      192.168.10.158

service-id        6            37              158

初始化备库(使其和主库数据一致)

Master上配置:

Mysql>flush tables with read lock;

#mysqldump --lock-all-tables --all-databaes>all.sql

#mysql -e ‘show master status’

Mysql>unlock tables;

#rsync -av all.sql 192.168.10.158:/

Slave2:

Mysql>source /all.sql

备库的配置:

备库配置:vim /etc/my.cnf

Log-bin=mysql-bin    //打开二进制日志

Server-id=37

Relay_log=mysql_relay-bin

Log_slave_updates=1

Read_only=1

Service mysqld start   //重启mysql进程

Mysql> reset master;

Mysql>change master to master_host=’192.168.10.6’,  master_user=’rep1’, master_password=’luliechu’,  master_log_file=’mysql-bin.000001’,  master_log_pos=699;

时间: 2024-10-13 01:15:28

mysql管理之主从复制的相关文章

MySQL 5.6 主从复制配置

一.前言:为什么MySQL要做主从复制(读写分离)?通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低.为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻主数据库的负载.而且如果主数据库宕机,可快速将业务系统切换到从数据库上,可避免数据丢失. 二.MySQL主从复制(读写分离)和集群的区别: 1.主从复制(读写分离):一般需要两台及以上数据库服务器即可(一台用于写入数据,一台用于同步主的数据并用于数据查询操作).局限性:(1)配置好主从复制之后,

mysql 5.5主从复制配置

首先将主库现有的要实现主从的数据库原原本本地复制到从库上,目的是一开始就让主从同步,让binlog日志从最新的记录开始同步! 备份: 1 导出所有库 系统命令行 mysqldump -uusername -ppassword --all-databases > all.sql 2 导入所有库 mysql命令行 mysql>source all.sql; 远程复制:将192.168.80.145上的test.sql拷到本机上 scp 192.168.80.145:/tmp/test.sql /t

<MySQL管理之道第二版元旦截稿

<MySQL管理之道第二版>元旦截稿,这周即可送往机械工业出版社排版订正,在这里感谢沃趣科技公司高级DBA邱文辉提供"MariaDB 10 Hash Join索引优化"一文.

MySQL管理之SQL语句实例

MySQL管理之SQL语句实例 首先,我们来导入world库,这个world库中的表是mysql ocp考试专用表,在网上有下 mysql> source/root/world_innodb.sql 表结构如下: 本文来自http://yijiu.blog.51cto.com 转载请经博主允许 ,盗帖可耻! CREATE TABLE `Country` (  `Code` char(3) NOT NULL DEFAULT '',  `Name` char(52) NOT NULL DEFAULT

MySQL数据的主从复制、半同步复制和主主复制详解

一.MySQL复制概述 ⑴.MySQL数据的复制的基本介绍 目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费多久,不容乐观的未来,但是我们还是要能熟练掌握MySQL数据的架构和安全备份等功能,毕竟现在它还算是开源界的老大吧! MySQL数据库支持同步复制.单向.异步复制,在复制的过程中一个服务器充当主服务,而一个或多个服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环

MySQL管理工具-phpMyAdmin管理平台搭建

4 MySQL管理工具 4.1 问题 本案例要求基于LAMP平台部署一套phpMyAdmin应用系统,实现对MySQL服务器的Web方式管理. 4.2 方案 使用2台RHEL6虚拟机 + 1台Windows 7真机,如图-2所示.其中192.168.4.10是MySQL服务器,授权操作在此服务器上执行:另一台Linux服务器192.168.4.6上部署phpMyAdmin管理平台,实现从浏览器访问的Web管理方式. 图-2 4.3 步骤 实现此案例需要按照如下步骤进行. 步骤一:在MySQL服务

MySQL数据库ab主从复制出错及解决过程

MySQL数据库ab主从复制出错及解决过程 一.mysql主从服务器报错描述:Slave_IO_Running=NO,Slave_SQL_Running=YES,Last_Errno=0 mysql slave stop ; mysql slave start; mysql show slave status ; 如果Slave_IO_Running=YES ...解决过程 :1 如果:Slave_IO_Running=NO,Slave_SQL_Running=YES,Last_Errno=0m

使用mysql管理meta

第一部分 安装mysql 第二部分 使用mysql管理meta 安装mysql 安装 yum -y install mysql mysql-server yum方法安装需要使用网络:可以自动续传:对于要依赖的包,能自动下载: rpm方法安装对于需要依赖的包,需要手动下载: mysql基础知识 查看mysql版本 rpm -qi mysql-server  --查看详细信息 mysql -V   --查看简略版本信息 配置 root用户下配置mysql默认编码 vi /etc/my.cnf 在[m

第1天 一篇、MySQL管理之道(性能调优、高可用与监控)

每天好像很忙,其实发现自己还是挺懒的,看了很多书,没一本好好的看完的.最近手上没那么多活了,决定好好看完几本书,并坚持下去持续更新.希望自己能坚持到底! 后期内容都是围绕<MySQL管理之道(性能调优.高可用与监控)>.<MariaDB与MySQL>.以及自己的实验所写.