基于RHEL6.0mysql服务器复制的主主架构实现

说明:本文选用172.16.22.1和172.16.22.3作为主服务器

两个主服务器的软件版本应相同

两个主服务器server-id 应不同

两个主服务器互为主从,所以在这里一个主服务器即是另一个主服务器的从服务器

一、准备条件:安装mysql(本文选用类似于一种绿色软件的方式安装mysql,特点:方便、快捷)

1.在172.16.22.1主机上安装mysql-5.5.22

(1) .新建用户以安全方式运行进程:

  1. # groupadd -r mysql
  2. # useradd -g mysql -r -s /sbin/nologin -M mysql

(2).安装并初始化mysql-5.5.22

  1. # tar xvf mysql-5.5.22-linux2.6-i686.tar.gz  -C /usr/local
  2. # cd /usr/local/
  3. # ln -sv mysql-5.5.22-linux2.6-i686  mysql
  4. # cd mysql
  5. # chown -R mysql:mysql  .
  6. # scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
  7. # chown -R root  .

(3).为mysql提供主配置文件:

  1. # cd /usr/local/mysql
  2. # cp support-files/my-large.cnf  /etc/my.cnf

并修改此文件中thread_concurrency的值为你的CPU个数乘以2(由于只有一颗CPU,所以这里thread_concurrency = 2),另外还需要添加如下行指定mysql数据文件的存放位置:

thread_concurrency = 2

datadir = /usr/local/mysql/data

(4).为mysql提供sysv服务脚本,并添加mysqld至服务列表,而后启动服务测试。

  1. # cd /usr/local/mysql
  2. # cp support-files/mysql.server  /etc/rc.d/init.d/mysqld
  3. # chkconfig --add mysqld
  4. # chkconfig mysqld on
  5. # service mysqld start

为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:

(5).输出mysql的man手册至man命令的查找路径:

编辑/etc/man.config,添加如下行即可:

MANPATH  /usr/local/mysql/man

(6).输出mysql的头文件至系统头文件路径/usr/include:

这可以通过简单的创建链接实现:

# ln -sv /usr/local/mysql/include  /usr/include/mysql

(7)输出mysql的库文件给系统库查找路径, 而后让系统重新载入系统库:

  1. # echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
  2. # ldconfig -v

(8).修改PATH环境变量(直接在/etc/profile文件里添加“PATH=$PATH:/usr/local/mysql/bin”即可),让系统可以直接使用mysql的相关命令:

  1. # vim /etc/profile
  2. PATH=$PATH:/usr/local/mysql/bin
  3. # source /etc/profile

2.在172.16.22.3主机上安装mysql-5.5.22

(1) .新建用户以安全方式运行进程:

  1. # groupadd -r mysql
  2. # useradd -g mysql -r -s /sbin/nologin -M mysql

(2).安装并初始化mysql-5.5.22

  1. # tar xvf mysql-5.5.22-linux2.6-i686.tar.gz  -C /usr/local
  2. # cd /usr/local/
  3. # ln -sv mysql-5.5.22-linux2.6-i686  mysql
  4. # cd mysql
  5. # chown -R mysql:mysql  .
  6. # scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
  7. # chown -R root .

(3).为mysql提供主配置文件:

  1. # cd /usr/local/mysql
  2. # cp support-files/my-large.cnf  /etc/my.cnf

并修改此文件中thread_concurrency的值为你的CPU个数乘以2(由于只有一颗CPU,所以这里thread_concurrency = 2),另外还需要添加如下行指定mysql数据文件的存放位置:

thread_concurrency = 2

datadir = /usr/local/mysql/data

(4).为mysql提供sysv服务脚本,并添加mysqld至服务列表,而后启动服务测试。

  1. # cd /usr/local/mysql
  2. # cp support-files/mysql.server  /etc/rc.d/init.d/mysqld
  3. # chkconfig --add mysqld
  4. # chkconfig mysqld on
  5. # service mysqld start

为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:

(5).输出mysql的man手册至man命令的查找路径:

编辑/etc/man.config,添加如下行即可:

MANPATH  /usr/local/mysql/man

(6).输出mysql的头文件至系统头文件路径/usr/include:

这可以通过简单的创建链接实现:

# ln -sv /usr/local/mysql/include  /usr/include/mysql

(7)输出mysql的库文件给系统库查找路径, 而后让系统重新载入系统库:

  1. # echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
  2. # ldconfig -v

(8).修改PATH环境变量(直接在/etc/profile文件里添加“PATH=$PATH:/usr/local/mysql/bin”即可),让系统可以直接使用mysql的相关命令:

  1. # vim /etc/profile
  2. PATH=$PATH:/usr/local/mysql/bin
  3. # source /etc/profile

二、配置主服务器

1.配置主服务器(172.16.22.1):

(1).编辑/etc/my.cnf配置文件开启中继日志与二进制日志:

log-bin=mysql-bin   (默认情况下都已经开启,此时不需要做修改)

在“log-bin=mysql-bin”下面增加四项:

relay-log = relay-bin

relay-log-index = relay-bin.index

auto_increment_offset = 1
auto_increment_increment = 2

(2).建立复制权限用户:

  1. # mysql
  2. mysql> GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO lh@’172.16.22.%’ IDENTIFIED BY ‘123456’;
  3. mysql> SHOW GRANTS FOR lh@’172.16.22.%’;

2.配置主服务器(172.16.22.3):

(1).编辑/etc/my.cnf配置文件,更改server-id使它和主服务器(172.16.22.1)的server-id不一样,开启二进制日志和中继日志:

# vim /etc/my.cnf

找到server-id,并改为

server-id = 11

log-bin=mysql-bin   (默认情况下都已经开启,此时不需要做修改)

在“log-bin=mysql-bin”下面增加四项:

relay-log = relay-bin

relay-log-index = relay-bin.index

auto_increment_offset = 2
auto_increment_increment = 2

(2).建立复制权限用户:

  1. # mysql
  2. mysql> GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO lihu@’172.16.22.%’ IDENTIFIED BY ‘123456’;
  3. mysql> SHOW GRANTS FOR lihu@’172.16.22.%’;

(3).在从服务器(172.16.22.1)上指定它的主服务器:

  1. # mysql
  2. mysql> CHANGE MASTER TO
  3. -> MASTER_HOST=’172.16.22.3’,
  4. -> MASTER_USER=’lihu’,
  5. -> MASTER_PASSWORD=’123456’;
  6. mysql> START SLAVE;
  7. mysql> SHOW SLAVE STATUS\G

如果看到方框内的两项都为‘yes’的话,说明你的从服务器已经正常启动了。

(4).在从服务器(172.16.22.3)上指定它的主服务器:

  1. # mysql
  2. mysql> CHANGE MASTER TO
  3. -> MASTER_HOST=’172.16.22.1’,
  4. -> MASTER_USER=’lh’,
  5. -> MASTER_PASSWORD=’123456’;
  6. mysql> START SLAVE;
  7. mysql> SHOW SLAVE STATUS\G

如果看到方框内的两项都为‘yes’的话,说明你的从服务器已经正常启动了。

三、对主服务器进行测试

在172.16.22.1上执行如下操作:

  1. # mysql
  2. mysql> show databases;

在172.16.22.3执行如下操作:

  1. # mysql
  2. mysql> show databases;

此时可以看到两个主服务器的数据库都是四个。

现在我们在主服务器(172.16.22.1)上创建一个数据库testdb和表test,看从服务器(172.16.22.3)上是否也有呢?

在172.16.22.1上执行如下操作:

  1. # mysql
  2. mysql> create database testdb;
  3. mysql> use testdb;
  4. mysql> create table test (
  5. -> Name varchar(30) not null,
  6. -> Age char(3) not null );

在172.16.22.3上查看是否有testdb数据库以及test1表:

  1. # mysql
  2. mysql> SHOW DATABASES;

  1. # mysql
  2. mysql> show tables;
  3. mysq> desc test;

此时发现在172.16.22.3上有testdb数据库和test表,说明成功了一半。

现在我们在主服务器(172.16.22.3)上创建一个数据库lh,看从服务器(172.16.22.1)上是否也有呢?

  1. # mysql
  2. mysql> create database lh;

在172.16.22.1上查看是否有数据库lh?

  1. # mysql
  2. mysql> show databases;

此时我们发现在172.16.22.1上有数据库lh,说明我们mysql服务器的主主架构完全实现了。

转载于:https://blog.51cto.com/lihuan/830959

基于RHEL6.0的mysql服务器复制的主主架构实现相关推荐

  1. MySQL异步复制延迟解决的架构设计与运维架构ppt

    <MySQL异步复制延迟解决的架构设计与运维架构ppt> 下载地址:网盘下载 转载于:https://www.cnblogs.com/long12365/p/9731216.html

  2. zabbix3.0 监控mysql服务器性能实现过程

    监控思路 先在zabbix主机上面配置好MySQL服务器的信息,添加好zabbix自带的Template App MySQL模版,然后去mysql服务器上安装agent,再添加mysql监控脚本. ...

  3. 基于 GPL-2.0的mysql的项目是否可以用于商业销售?

    GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售. mysql有永久免费版本 (即社区版),也有收费版本(企业版),但 ...

  4. mysql级联复制转换成一主两从_一主两从转级联复制

    一主两从 转 级联复制 示意图如下 M ---> S1 \ ====> M ---> S1 ---> S2 \ --> S2 如果有开启GTID操作起来方便多,GTID是 ...

  5. mysql二进制文件复制_MySQL 主从复制:基于二进制文件复制配置详解

    ##MySQL-主从复制:基于二进制文件复制详解 ###前言 主从复制是指把一个MySQL的数据库服务器作为主服务器(master),然后把master的数据复制到一个或者多个MySQL数据库服务器作 ...

  6. mysql主从、主主复制及高可用性

    mysql主从.主主复制及高可用性 一:MySQL复制: mysql复制简介: 将master服务器中主数据库的ddl和dml操作通过二进制日志传到slaves服务器上,然后在master服务器上将这 ...

  7. 死磕数据库系列(二十六):MySQL 高可用之单主、双主模型组复制配置实践

    点关注公众号,回复"1024"获取2TB学习资源! 前面我们学习:MySQL 高可用之组复制(MGR)技术的相关原理知识,今天我将详细的为大家介绍 MySQL 高可用技术组复制的单 ...

  8. MySQL内部开发人员如何看待MySQL组复制?

    MySQL因为高性能.可扩展性和可用性被广泛应用于Web应用程序,成为支持高流量社交媒体.电商应用程序以及快速成长企业的IT平台基础.在MySQL 5.7.17版本中,MySQL Group Repl ...

  9. mysql在线复制_mysql的两种复制模式

    mysql的复制术语 扩展的方式: Scale up Scale Out 复制: 向外扩展 二进制日志 单向 复制功用: 数据分布 负载均衡:读操作,适用于读密集型的应用 备份 高可用和故障切换 My ...

最新文章

  1. python对象模型 ruby_使用JRuby/Jython实现Ruby/Python的互操作性?
  2. 第十四篇:有概率的上下文无关语法Probabilistic Context-Free Grammar
  3. qs.parse()、qs.stringify()使用方法
  4. NR 5G L3无线资源控制层
  5. MVC-07 案例1
  6. java中ThreadLocal的使用
  7. [渝粤教育] 西南科技大学 工程测量 在线考试复习资料
  8. java servlet jsp javabean关系图,一个关于javaBean+servlet+jsp的MVC架构有关问题
  9. h5 先加载小图_萌宝学诗|读诗、画诗、唱诗,尽在小图姐姐的《九月九日忆山东兄弟》中!...
  10. Flume篇---Flume安装配置与相关使用
  11. 【转载】强大的MongoDB数据库管理工具
  12. HDS存储给主机扩容步骤
  13. 计算机作业我家乡的变化英语作文,我的变化英语作文3篇
  14. 计算语言学之语法理论
  15. 关于自我的剖析 —— 认知(面试:你的缺点是什么)
  16. RK3588平台开发系列讲解(Display篇)开机视频的设置
  17. AcWing4084 号码牌 (并查集 / bitset优化Floyd)
  18. STM32f1之简单控制继电器模块(附源码)
  19. 大流行清楚地表明,我们需要完全自动化的豪华共产主义
  20. PMP试题(435道)

热门文章

  1. 记录一个SpringBoot集成邮件及工具类博客
  2. zabbix中mysql连不上的排错_zabbix监控软件的使用排错
  3. AOP底层原理与注解配置详解
  4. linux上clisp运行lisp,apache - 重新访问linux + apache2 + mod_lisp + CLISP - 堆栈内存溢出
  5. python查看内存地址的内容_python中如何查看指定内存地址的内容
  6. 流程控制介绍,顺序结构、分支结构、循环结构、Promise对象、throw语句、break和continue关键字
  7. C++ 二进制文件读操作
  8. 中台产品经理能力模型
  9. LeetCode刷题——最长回文子串
  10. 求矩阵中各列数字的和