MySQL主从复制的类型

基于语句的复制(默认)

在主服务器上执行的语句,从服务器执行同样的语句

基于行的复制

把改变的内容复制到从服务器

混合类型的复制

一旦发现基于语句无法精确复制时,就会采用基于行的复制

MySQL读写分离原理

读写分离就是只在主服务器上写,只在从服务器上读

主数据库处理事务性查询,而从数据库处理select查询

数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库

3,在slave2上安装ntp,ntpdate服务

4,在master,slave1,slave2上分别安装MySQL

[root@master1 ~]# mkdir /abc ##创建挂载点

[root@master1 ~]# mount.cifs //192.168.100.1/LNMP-C7 /abc/ ##远程挂载

Password for root@//192.168.100.1/LNMP-C7:

[root@master1 ~]# cd /abc/

[root@master1 abc]# ls

mysql-5.5.24

[root@master1 abc]# tar zxvf mysql-5.5.24.tar.gz -C /opt/ ##解压

[root@master1 opt]# yum install -y

> gcc gcc-c++

> ncurses

> ncurese-devel ##控制终端屏幕显示的库

> bison ##语法分析

> make

> cmake ##cmake工具

> libaio-devel ##系统调用来实现异步IO

[root@slave1 opt]# useradd -s /sbin/nologin mysql ##添加不可登录的mysql用户

[root@slave1 opt]# cd /opt/mysql-5.5.24/

[root@slave1 mysql-5.5.24]# mkdir /usr/local/mysql ##创建安装目录

[root@slave1 mysql-5.5.24]# cmake ##配置

> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql ##安装路径

> -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock ##sock文件路径

> -DDEFAULT_CHARSET=utf8 ##字符集

> -DDEFAULT_COLLATION=utf8_general_ci

> -DWITH_EXTRA_CHARSETS=all

> -DWITH_MYISAM_STORAGE_ENGINE=1 ##存储引擎

> -DWITH_INNOBASE_STORAGE_ENGINE=1

> -DWITH_MEMORY_STORAGE_ENGINE=1

> -DWITH_READLINE=1

> -DENABLED_LOCAL_INFILE=1

> -DMYSQL_DATADIR=/home/mysql ##数据文件路径

> -DMYSQL_USER=mysql ##用户

> -DMYSQL_TCP_PORT=3306 ##端口

[root@slave1 mysql-5.5.24]# make && make install ##编译及安装

[root@master1 mysql-5.5.24]# chown -R mysql.mysql /usr/local/mysql ##设置mysql属主属组

[root@master1 mysql-5.5.24]# vim /etc/profile ##配置环境变量便于系统识别

export PATH=$PATH:/usr/local/mysql/bin/

[root@master1 mysql-5.5.24]# source /etc/profile ##刷新配置文件

[root@master1 mysql-5.5.24]# cp support-files/my-medium.cnf /etc/my.cnf ##主配置文件

cp:是否覆盖"/etc/my.cnf"? yes

[root@master1 mysql-5.5.24]# cp support-files/mysql.server /etc/init.d/mysqld ##启动文件

[root@master1 mysql-5.5.24]# chmod 755 /etc/init.d/mysqld ##设置权限

[root@master1 mysql-5.5.24]# chkconfig --add /etc/init.d/mysqld ##添加到service管理中

[root@master1 mysql-5.5.24]# chkconfig mysqld --level 35 on ##开机自启动

[root@master1 mysql-5.5.24]# /usr/local/mysql/scripts/mysql_install_db ##初始化数据库

> --user=mysql

> --ldata=/var/lib/mysql

> --basedir=/usr/local/mysql

> --datadir=/home/mysql

[root@master1 mysql-5.5.24]# vim /etc/init.d/mysqld ##编辑启动脚本文件

basedir=/usr/local/mysql ##找到此处添加路径

datadir=/home/mysql

[root@master1 mysql-5.5.24]# service mysqld start ##启动MySQL

Starting MySQL.. SUCCESS!

[root@master1 mysql-5.5.24]# mysqladmin -u root password 'abc123' ##设置密码

5,配置master主服务器

6,配置slave1从服务器

7,配置slave2从服务器

8,测试主从同步情况

至此database主从同步成功!!!

9,配置amoeba服务器

10,在master,slave1,slave2上提取amoeba访问权限

11,修改amoeba服务器配置文件

[root@amoeba conf]# vim amoeba.xml ##修改主配置文件

#第30行

<property name="user">amoeba</property> ##从服务器同步主服务器的用户密码

#第32行

<property name="password">123456</property>

#第117行去掉注释

<property name="defaultPool">master</property>

<property name="writePool">master</property>

<property name="readPool">slaves</property>

[root@amoeba conf]# vim conf/dbServers.xml ##配置数据库配置文件

#第26 至29行去掉注释

<property name="user">test</property>

<property name="password">http://123.com</property>

#第42行添加主服务器地址

<dbServer name="master" parent="abstractServer">

<property name="ipAddress">192.168.142.151</property>

第52行添加从服务器slave1地址

<dbServer name="slave1" parent="abstractServer">

<property name="ipAddress">192.168.142.163</property>

##复制6行添加服务器slave2地址

<dbServer name="slave2" parent="abstractServer">

<property name="ipAddress">192.168.142.145</property>

#第65行授权同步

<dbServer name="slaves" virtual="true">

<poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">

#末行添加从服务器名称

<property name="poolNames">slave1,slave2</property>

</poolConfig>

[root@amoeba conf]# /usr/local/amoeba/bin/amoeba start& ##开启amoeba服务

[root@amoeba ~]# netstat -anpt | grep java ##开启另一个终端查看开启情况

tcp6 0 0 127.0.0.1:26268 :::* LISTEN 40925/java

tcp6 0 0 :::8066 :::* LISTEN 40925/java

tcp6 0 0 192.168.142.160:34090 192.168.142.151:3306 ESTABLISHED 40925/java

tcp6 0 0 192.168.142.160:33866 192.168.142.145:3306 ESTABLISHED 40925/java

tcp6 0 0 192.168.142.160:55984 192.168.142.163:3306 ESTABLISHED 40925/java

12,在客户端测试读写分离

在主服务器上写如数据,在从服务器上读取数据,采用的是轮询机制,从而实现读写分离!!!

写在最后:

本专栏所有文章均为南京课工场学员投稿,如有问题欢迎指出讨论,未经允许,禁止转载!

centos mysql无法启动 sock_【零基础学云计算】MYSQL的主从复制、读写分离相关推荐

  1. 零基础学云计算必备,最新云计算学习路线图

    据统计,越来越多的企业正在使用云服务,云计算独特的优势,为企业节约了硬件软件成本,因此,企业对云计算人才的需求也不断增加.对于帮助更多想要学习云计算的小伙伴,下面千锋云计算小编给大家分享最新云计算学习 ...

  2. 零基础学云计算怎么样?2020年云计算学习路线

    云计算是近年来比较火爆的技术之一,受国家政策支持以及互联网更迭推动,云计算应用领域进一步扩张,云计算人才进一步增多.有很多零基础的人想要转行学习云计算,却又担心学不会,对于没有任何基础的人来说,如果想 ...

  3. php公用一个尾部,19.2 共用显示部分 - 19.2.2 共用尾部页面 - 《零基础学PHP+MySQL (零基础学编程)》 - D云...

    19.2.2 共用尾部页面 在上面介绍了PHP论坛的共用头部,接下来介绍PHP论坛的共用尾部页面的建立.共用尾部页面是用来显示网站的版权所有,程序的代码如代码19.2所示. 代码19.2 共用尾部页面 ...

  4. linux安装tomcat_【零基础学云计算】详述Linux系统中Tomcat部署及优化

    Tomcat介绍 免费的.开放源代码的Web应用服务器 Apache软件基金会(Apache Software Foundation)Jakarta项目中的一个核心项目 由Apache.Sun和一些公 ...

  5. squid 不缓存特定页面_【零基础学云计算】squid代理服务器介绍与配置(理论+实践)一...

    缓存的概述 Web代理的工作机制 缓存网页对象,减少重复请求 代理的基本类型 传统代理:适用于Internet,需明确指定服务端 透明代理:客户机不需要指定代理服务 器的地址和端口,而是通过默认路由. ...

  6. iptables nat实验_【零基础学云计算】LVS负载均衡群集之NAT模式搭建 (实践篇)...

    实验原理图 实验环境 LVS调度器作为web服务器池的网关 LVS服务器配置两块网卡分别连接内外网 使用轮询(rr)调度算法 LVS负载调度器网段规划 内网33网关:192.168.144.1 外网3 ...

  7. k8s ready 不调度_【零基础学云计算】k8s部署---master节点组件部署(三)

    kube-APIserver组件介绍 kube-APIserver提供了k8s各类资源对象(pod,RC,Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中 ...

  8. 静态路由_【零基础学云计算】静态路由!静态路由!静态路由!原理与配置

    本次和各位小伙伴分享的是静态路由的原理和配置,接下来我会从以下几个方面来和大家进行解析: 1.路由器的工作原理 2.路由表的形成 3.静态路由和默认路由 4.路由器转发数据包的封装过程 5.静态路由和 ...

  9. shell脚本求和_【零基础学云计算】Shell编程之case语句与循环语句

    case多分支语句 循环语句 for循环语句 while循环语句 untli循环语句 Shell函数 Shell数组 case语句的结构 针对变量的不同取值,分别执行不同的命令序列 case 变量值 ...

最新文章

  1. CVPR2020:三维实例分割与目标检测
  2. csu 1976: 搬运工小明
  3. java lombok 视频_Java开发神器Lombok使用详解
  4. 字符串大小写互换方法
  5. k近邻回归算法python_经典算法之K近邻(回归部分)
  6. python读取文件夹下所有图像 预处理_Tensorflow之tif图像文件预处理
  7. git clone 时候出现Please make sure you have the correct access rights and the repository exists.
  8. 我和蓝牙BT,BLE有一腿
  9. Jquery基础知识
  10. node-red mysql的增删改查_通过curl或者http请求对elasticsearch中的数据进行增删改查...
  11. idea配置Lua环境
  12. C语言第6次上机,C语言第五次上机作业参考答案
  13. Filter的敏感词汇过滤案例
  14. 淘宝搜索算法综述之一:淘宝搜索的特点
  15. 虚拟机CentOS-7修改ip地址
  16. X(解释变量)增加一单位标准差,Y(被解释变量)增加多少标准差?
  17. 1863: Dinner
  18. 华为鸿蒙或适配高通平台,博主简评华为鸿蒙操作系统,亮点是分布式操作,或将适配高通平台...
  19. C/C++知识总结 四 循环与分支语句
  20. OpenCV配置(利用Source编译,并配置扩展库opencv_contrib)

热门文章

  1. 这十个不常见但却十分实用的Python库,你知道几个?
  2. Python异常捕获及自定义异常类
  3. Python中的互斥锁和join的应用
  4. 如何得到发送邮件服务器地址(SMTP地址)
  5. ExtJS,JQuery,Dojo的小比较
  6. Request中getContextPath、getServletPath、getRequestURI、request.getRealPath的区别
  7. Linux系统基本概念
  8. 相机中影响成像质量的参数
  9. 差分隐私与可穿戴式设备调查【笔记】
  10. 20190530本科教学PPT 文本挖掘的两种基本方法(TF-IDF和LDA)