基于RHEL6.0的mysql服务器复制的主主架构实现
基于RHEL6.0的mysql服务器复制的主主架构实现
说明:本文选用172.16.22.1和172.16.22.3作为主服务器
两个主服务器的软件版本应相同
两个主服务器server-id 应不同
两个主服务器互为主从,所以在这里一个主服务器即是另一个主服务器的从服务器
一、准备条件:安装mysql(本文选用类似于一种绿色软件的方式安装mysql,特点:方便、快捷)
1.在172.16.22.1主机上安装mysql-5.5.22
(1) .新建用户以安全方式运行进程:
- # groupadd -r mysql
- # useradd -g mysql -r -s /sbin/nologin -M mysql
(2).安装并初始化mysql-5.5.22
- # tar xvf mysql-5.5.22-linux2.6-i686.tar.gz -C /usr/local
- # cd /usr/local/
- # ln -sv mysql-5.5.22-linux2.6-i686 mysql
- # cd mysql
- # chown -R mysql:mysql .
- # scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
- # chown -R root .
(3).为mysql提供主配置文件:
- # cd /usr/local/mysql
- # 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至服务列表,而后启动服务测试。
- # cd /usr/local/mysql
- # cp support-files/mysql.server /etc/rc.d/init.d/mysqld
- # chkconfig --add mysqld
- # chkconfig mysqld on
- # 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的库文件给系统库查找路径, 而后让系统重新载入系统库:
- # echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
- # ldconfig -v
(8).修改PATH环境变量(直接在/etc/profile文件里添加“PATH=$PATH:/usr/local/mysql/bin”即可),让系统可以直接使用mysql的相关命令:
- # vim /etc/profile
- PATH=$PATH:/usr/local/mysql/bin
- # source /etc/profile
2.在172.16.22.3主机上安装mysql-5.5.22
(1) .新建用户以安全方式运行进程:
- # groupadd -r mysql
- # useradd -g mysql -r -s /sbin/nologin -M mysql
(2).安装并初始化mysql-5.5.22
- # tar xvf mysql-5.5.22-linux2.6-i686.tar.gz -C /usr/local
- # cd /usr/local/
- # ln -sv mysql-5.5.22-linux2.6-i686 mysql
- # cd mysql
- # chown -R mysql:mysql .
- # scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
- # chown -R root .
(3).为mysql提供主配置文件:
- # cd /usr/local/mysql
- # 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至服务列表,而后启动服务测试。
- # cd /usr/local/mysql
- # cp support-files/mysql.server /etc/rc.d/init.d/mysqld
- # chkconfig --add mysqld
- # chkconfig mysqld on
- # 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的库文件给系统库查找路径, 而后让系统重新载入系统库:
- # echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
- # ldconfig -v
(8).修改PATH环境变量(直接在/etc/profile文件里添加“PATH=$PATH:/usr/local/mysql/bin”即可),让系统可以直接使用mysql的相关命令:
- # vim /etc/profile
- PATH=$PATH:/usr/local/mysql/bin
- # 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).建立复制权限用户:
- # mysql
- mysql> GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO lh@’172.16.22.%’ IDENTIFIED BY ‘123456’;
- 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).建立复制权限用户:
- # mysql
- mysql> GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO lihu@’172.16.22.%’ IDENTIFIED BY ‘123456’;
- mysql> SHOW GRANTS FOR lihu@’172.16.22.%’;
(3).在从服务器(172.16.22.1)上指定它的主服务器:
- # mysql
- mysql> CHANGE MASTER TO
- -> MASTER_HOST=’172.16.22.3’,
- -> MASTER_USER=’lihu’,
- -> MASTER_PASSWORD=’123456’;
- mysql> START SLAVE;
- mysql> SHOW SLAVE STATUS\G
如果看到方框内的两项都为‘yes’的话,说明你的从服务器已经正常启动了。
(4).在从服务器(172.16.22.3)上指定它的主服务器:
- # mysql
- mysql> CHANGE MASTER TO
- -> MASTER_HOST=’172.16.22.1’,
- -> MASTER_USER=’lh’,
- -> MASTER_PASSWORD=’123456’;
- mysql> START SLAVE;
- mysql> SHOW SLAVE STATUS\G
如果看到方框内的两项都为‘yes’的话,说明你的从服务器已经正常启动了。
三、对主服务器进行测试
在172.16.22.1上执行如下操作:
- # mysql
- mysql> show databases;
在172.16.22.3执行如下操作:
- # mysql
- mysql> show databases;
此时可以看到两个主服务器的数据库都是四个。
现在我们在主服务器(172.16.22.1)上创建一个数据库testdb和表test,看从服务器(172.16.22.3)上是否也有呢?
在172.16.22.1上执行如下操作:
- # mysql
- mysql> create database testdb;
- mysql> use testdb;
- mysql> create table test (
- -> Name varchar(30) not null,
- -> Age char(3) not null );
在172.16.22.3上查看是否有testdb数据库以及test1表:
- # mysql
- mysql> SHOW DATABASES;
- # mysql
- mysql> show tables;
- mysq> desc test;
此时发现在172.16.22.3上有testdb数据库和test表,说明成功了一半。
现在我们在主服务器(172.16.22.3)上创建一个数据库lh,看从服务器(172.16.22.1)上是否也有呢?
- # mysql
- mysql> create database lh;
在172.16.22.1上查看是否有数据库lh?
- # mysql
- mysql> show databases;
此时我们发现在172.16.22.1上有数据库lh,说明我们mysql服务器的主主架构完全实现了。
转载于:https://blog.51cto.com/lihuan/830959
基于RHEL6.0的mysql服务器复制的主主架构实现相关推荐
- MySQL异步复制延迟解决的架构设计与运维架构ppt
<MySQL异步复制延迟解决的架构设计与运维架构ppt> 下载地址:网盘下载 转载于:https://www.cnblogs.com/long12365/p/9731216.html
- zabbix3.0 监控mysql服务器性能实现过程
监控思路 先在zabbix主机上面配置好MySQL服务器的信息,添加好zabbix自带的Template App MySQL模版,然后去mysql服务器上安装agent,再添加mysql监控脚本. ...
- 基于 GPL-2.0的mysql的项目是否可以用于商业销售?
GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售. mysql有永久免费版本 (即社区版),也有收费版本(企业版),但 ...
- mysql级联复制转换成一主两从_一主两从转级联复制
一主两从 转 级联复制 示意图如下 M ---> S1 \ ====> M ---> S1 ---> S2 \ --> S2 如果有开启GTID操作起来方便多,GTID是 ...
- mysql二进制文件复制_MySQL 主从复制:基于二进制文件复制配置详解
##MySQL-主从复制:基于二进制文件复制详解 ###前言 主从复制是指把一个MySQL的数据库服务器作为主服务器(master),然后把master的数据复制到一个或者多个MySQL数据库服务器作 ...
- mysql主从、主主复制及高可用性
mysql主从.主主复制及高可用性 一:MySQL复制: mysql复制简介: 将master服务器中主数据库的ddl和dml操作通过二进制日志传到slaves服务器上,然后在master服务器上将这 ...
- 死磕数据库系列(二十六):MySQL 高可用之单主、双主模型组复制配置实践
点关注公众号,回复"1024"获取2TB学习资源! 前面我们学习:MySQL 高可用之组复制(MGR)技术的相关原理知识,今天我将详细的为大家介绍 MySQL 高可用技术组复制的单 ...
- MySQL内部开发人员如何看待MySQL组复制?
MySQL因为高性能.可扩展性和可用性被广泛应用于Web应用程序,成为支持高流量社交媒体.电商应用程序以及快速成长企业的IT平台基础.在MySQL 5.7.17版本中,MySQL Group Repl ...
- mysql在线复制_mysql的两种复制模式
mysql的复制术语 扩展的方式: Scale up Scale Out 复制: 向外扩展 二进制日志 单向 复制功用: 数据分布 负载均衡:读操作,适用于读密集型的应用 备份 高可用和故障切换 My ...
最新文章
- python对象模型 ruby_使用JRuby/Jython实现Ruby/Python的互操作性?
- 第十四篇:有概率的上下文无关语法Probabilistic Context-Free Grammar
- qs.parse()、qs.stringify()使用方法
- NR 5G L3无线资源控制层
- MVC-07 案例1
- java中ThreadLocal的使用
- [渝粤教育] 西南科技大学 工程测量 在线考试复习资料
- java servlet jsp javabean关系图,一个关于javaBean+servlet+jsp的MVC架构有关问题
- h5 先加载小图_萌宝学诗|读诗、画诗、唱诗,尽在小图姐姐的《九月九日忆山东兄弟》中!...
- Flume篇---Flume安装配置与相关使用
- 【转载】强大的MongoDB数据库管理工具
- HDS存储给主机扩容步骤
- 计算机作业我家乡的变化英语作文,我的变化英语作文3篇
- 计算语言学之语法理论
- 关于自我的剖析 —— 认知(面试:你的缺点是什么)
- RK3588平台开发系列讲解(Display篇)开机视频的设置
- AcWing4084 号码牌 (并查集 / bitset优化Floyd)
- STM32f1之简单控制继电器模块(附源码)
- 大流行清楚地表明,我们需要完全自动化的豪华共产主义
- PMP试题(435道)
热门文章
- 记录一个SpringBoot集成邮件及工具类博客
- zabbix中mysql连不上的排错_zabbix监控软件的使用排错
- AOP底层原理与注解配置详解
- linux上clisp运行lisp,apache - 重新访问linux + apache2 + mod_lisp + CLISP - 堆栈内存溢出
- python查看内存地址的内容_python中如何查看指定内存地址的内容
- 流程控制介绍,顺序结构、分支结构、循环结构、Promise对象、throw语句、break和continue关键字
- C++ 二进制文件读操作
- 中台产品经理能力模型
- LeetCode刷题——最长回文子串
- 求矩阵中各列数字的和