Mysql数据库AB复制简单实现

Mysql 主 从 复 制

在实际企业应用环境当中,单台mysql数据库是不足以满足日后业务需求的。譬如服务器发生故障,没有备份服务器来提供服务的话,业务就得停止。介于这种情况,我们可以对mysql数据库进行主从复制,mysql直接的主从复制需版本相同,可以跨平台进行主从复制操作。

一、使用mysql主从复制的好处有:

1、采用主从服务器这种架构,稳定性得以提升。如果主服务器发生故障,我们可以使用从服务器来提供服务。

2、在主从服务器上分开处理用户的请求,可以提升数据处理效率。

3、将主服务器上的数据复制到从服务器上,保护数据免受意外的损失。

二、实验环境描述:

主服务器(mysql-master):IP地址:172.25.26.1,mysql已安装,没有用户数据。

从服务器(mysql-slave):IP地址:172.25.26.2,mysql已安装,没有用户数据。

三、主从复制配置如下:

在主服务器上操作:

1)、确保/etc/my.cnf中有如下参数,没有的话需手工添加,并重启mysql服务。

[[email protected] ~]# vim/etc/my.cnf

[mysqld]

log-bin=mysql-bin 启动二进制文件

server-id=1 服务器ID

2)、登录mysql,在mysql中添加一个backup的账号,并授权给从服务器。

[[email protected] ~]# mysql –u root –p

mysql> create user [email protected] identified by‘admin‘;

mysql> grant replication slave on *.* [email protected] identified by ‘admin‘;(创建admin用户,并授权给10.0.144.81使用。)

3)、查询主数据库状态,并记下FILE及Position的值,这个在后面配置从服务器的时候要用到。

mysql> show master status;

四、在从服务器上操作:

1)、确保/etc/my.cnf中有log-bin=mysql-bin和server-id=1参数,并把server-id=1修改为server-id=10。修改之后如下所示:

[mysqld]

log-bin=mysql-bin 启动二进制文件

server-id=10 服务器ID

2)、重启mysql服务。

[[email protected] ~]#/etc/init.d/mysqldrestart

3)、登录mysql,执行如下语句

[[email protected] ~]# mysql –u root –p

mysql> change master to master_host=‘172.25.26.1‘,master_user=‘admin‘,master_password=‘admin‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=106;

4)、启动slave同步。

mysql> start slave;

5)、检查主从同步,如果您看到Slave_IO_Running和Slave_SQL_Running均为Yes,则主从复制连接正常。

mysql> show slave status\G

验证配置是否正常,mysql主从能否正常复制。

五、测试主从复制

在主数据库上新建一个库,并且在库中写一个表和一些数据。

[[email protected] ~]# mysql –u root –p

mysql> create database zhangfeng;

mysql> use zhangfeng;

mysql> create table zhang (id int(5),namechar(10));

mysql> insert into zhang values (2,‘zhangfeng‘);

在从数据库中验证一下,是否正常复制到数据。

[[email protected] ~]# mysql -uroot –p123456

mysql> show databases;

mysql> select * from zhangfeng.zhang;

从上图中的结果,我们可以看到mysql主从复制已经在起作用了,我们在主数据库中写入的数据已经复制到我们的从数据库中了。

时间: 2024-11-12 18:51:07

Mysql数据库AB复制简单实现的相关文章

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 的 AB 复制(主从,双机热备)

MYSQL 的 AB 复制(主从,双机热备)     在实际的应用中,我们经常需要制作一个备份数据库.当我们的主数据库发生问题导致无法正常相应的时候,我们可以 把备用的从数据库街上来顶替主库,以达到不间断服务,热备的作用.在实际应用中从库和主库的数据必须同步,保持一致, 对主库的任何操作通要引发从库上的同样操作. 实现原理: 从库以一定的频率去读取主库的二进制日志文件,按照日志中记录对从库进行同样的操作,以达到同步效果. 注意版本影响: 实现双机的热备首先要了解主从数据库服务器的版本的需求.首先

Mysql的AB复制(主从复制)原理及实现

Mysql复制(replication)是一个异步的复制,从一个Mysql 实例(Master)复制到另一个Mysql 实例(Slave).实现整个主从复制,需要由Master服务器上的IO进程,和Slave服务器上的Sql进程和IO进程共从完成.         要实现主从复制,首先必须打开Master端的binary log(bin-log)功能,因为整个MySQL 复制过程实际上就是Slave从Master端获取相应的二进制日志,然后再在自己slave端完全顺序的执行日志中所记录的各种操作

Mysql数据库实现的简单置顶

Mysql数据库实现的简单置顶 1. 问题背景:小编要做一个文章管理的简单网页,用的是Mysql数据库.其中需要文章置顶功能,如图: 2. 最初的思路:机智的小编立刻大脑飞速运转,很快想到为存储文章的"article"表设定一个(int)型的"isTop"属性,0表示不置顶,大于0表示置顶且数字越大,优先级越高.显示的时候只需按照"isTop"降序显示.当用户需要将"id"为"001"的文章置顶时,后台只需

mysql数据库基础的简单操作指南

最近在学习mysql,本文是做的关于mysql学习的笔记,跟大家分享一下,希望对大家学习mysql知识有所助益.mysql现在几乎已经成了网站建设的主流数据库,很多php网站系统都采用了mysql数据库.比mssql最大的优势在于开源,免费.希望与大家共同进步. mysql数据库基础的简单操作指南:首先进入mysql:mysql -u root -p 1.建库: create database 库名称; 例如:create database mydata;(创建一个名为“mydata”的库):

Mysql的ab复制

mysql复制在业界里有叫:mysql同步,ab复制等.专业名称就是叫:复制.复制是单向的异步复制,从一个Mysql(Master)复制到另一个Mysql(Slave).实现整个主从复制,需要由Master服务器上的IO进程,和Salve服务器上的Sql进程和IO进程共同完成. 要实现主从复制,首先必须打开Master端的二进制日志(bin-log)功能,因为整个Mysql复制过程实际上就是Slave从Master端获取相应的二进制日志文件,然后在根据相应的Position号在自己Slave端完

学习笔记--mysql的AB复制

MySQL 提供了数据库的同步功能,这对我们实现数据库的冗灾.备份.恢复.负载均衡等都是有极大帮助的. 客户端的数据全部写入mysql主服务器中,主服务器将数据同步至从服务器,当用户读取数据时在从服务器中进行读取,极大降低了主服务器的压力,提高了整体业务的水平 实验环境:master:server6 slave:server7 Mysql版本:Ver 14.14 Distrib 5.1.71 Master 配置: vim   /etc/my.cnf 在[mysqld]下添加一下参数 log-bi

php基础编程-php连接mysql数据库-mysqli的简单使用

很多php小白在学习完php基础后,或多或少要接触到数据库的使用.而mysql数据库是你最好的选择,本文就mysql来为大家介绍php如何连接到数据库. PHP MySQLi = PHP MySQL Improved! MySQLi 函数允许您访问 MySQL 数据库服务器. 我简单的把php通过mysqli来连接mysql服务器分为5个步骤: 创建mysql连接 编辑sql语句,并执行返回结果 将返回的结果转为可以处理的数据结构,例如数组 释放本次查询的结果 释放本次连接 下面用代码向大家演示

用python操作mysql数据库(之简单查操作)

1.mysql安装 此处省略一万字....... 2.pip安装MySQLdb模块 sudo pip install mysql-python 3.简单代码 #!/usr/bin/env python # -*- coding: utf-8 -*- import MySQLdb #建立连接 conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='1qaz#EDC',db='test_db') cur = conn.cursor()