Mysql 数据库的主从复制方案,是其自带的功能,并且主从复制并不是复制磁盘上的数据文件,而是通过binlog日志复制到需要同步的服务器上.

一 主从复制的原理实现

原理图解说:

 数据库更改

 生成数据二进制日志

 从库一直开启数据库线程

 使用数据库线程读取主库的日志文件

 把主库的数据日志写入中继日志文件

 从库一直开启sql 线程读取中继日志

 从库把日志读取到从库数据中

二 mysql 权限基本操作

注意:分配权限,必须是root,且主机不能是''%''

mysql
1.精通mysql,增删改查(CURD),视图、优化SQL、
2.也是基本的SQL学习,主从复制架构 1.启动mysql
systemctl start mariadb 2.linux客户端连接自己
mysql -uroot -p -h 127.0.0.1 3.远程链接mysql服务端
mysql -uroot -p -h 192.168.11.37 4.修改mysql密码
MariaDB [(none)]> set password = PASSWORD('redhat123'); 5.创建mysql用户
create user yuanqing@'%' identified by 'yq666'; 6.查询mysql库中的用户信息
use mysql;
select host,user,password from user; 7.授权语句
给袁清这个用户,授予创建数据库的权限 mysql使用grant命令对账户进行授权,grant命令常见格式如下 grant 权限 on 数据库.表名 to 账户@主机名 对特定数据库中的特定表授权
grant 权限 on 数据库.* to 账户@主机名   对特定数据库中的所有表给与授权
grant 权限1,权限2,权限3 on *.* to 账户@主机名    对所有库中的所有表给与多个授权
grant all privileges on *.* to 账户@主机名    对所有库和所有表授权所有权限 #授予袁清创建的权限,对于所有的库表生效
grant create on *.* to yuanqing@"%" identified by 'yq666';
#授予袁清用户,只有创建mymysql数据库的权限
grant create on mymysql.* to yuanqing@"%" identified by 'yq666'; #授予用户最大的权限,所有的权限
grant all privileges on *.* to username@'%' identified by 'password'; 8.移除权限
MariaDB [(none)]> revoke all privileges on *.* from yuanqing@"%"; 9.数据库的备份与恢复
#备份
mysqldump -u root -p --all-databases > /tmp/db.sql
#数据导入,方式有2种
source /tmp/db.sql; 第二种
mysql -uroot -p < /tmp/db.sql 第三种
navicat 第四种,如果你数据量特别大的话,使用第三方工具
xtrabackup

三 master主库配置

1.在matser主库上的操作,开启主库功能
systemctl stop mariadb
编辑/etc/my.cnf
写入如下信息
[mysqld]
server-id=10
log-bin=qishi-
logbin
systemctl start mariadb 2.在主库创建用户,用于同步数据
create user yuanqing@'%' identified by 'yq666'; 授予普通用户,slave的身份
grant replication slave on *.* to 'yuanqing'@'%'; 3.锁定数据库的库表,禁止写入
这个命令是全局读锁定,执行了命令之后所有库所有表都被锁定只读。一般都是用在数据库联机备份,这个时候数据库的写操作将被阻塞,读操作顺利进行。
解锁语句是:UNLOCK TABLES;
flush table with read lock; 记录下主库的状态,记录下,日志文件的名字,和位置
show master status; 4.导出主库的数据(另开一个ssh窗口,到出数据库)
mysqldump -u root -p --all-databases > /tmp/db.sql 5.远程传输主库的数据,给从库,进行导入
scp /tmp/db.sql root@192.168.11.167:/tmp/ 6.解锁主库的锁,写入数据,查看从库是否同步
unlock tables;

配置关键步骤截图

主库状态信息截图

四 slave 从库配置

1.在从库的 /etc/my.cnf中添加参数,添加只读参数
[mysqld]
server-id=3
read-only=true #只读
2.重启数据库
systemctl restart mariadb
在从库中导入主库的数据
在从库机器上192.168.11.167 ,安装mariadb,导入数据
mysql -uroot -p < /tmp/db.sql 3.一条语句,开启主从之间的复制关系
mysql > change master to master_host='192.168.11.37',
master_user='yuanqing',
master_password='yq666',
master_log_file='qishi-logbin.000001',
master_log_pos=759;
4.开启slave同步功能
start slave; 5.检查slave机器的主从是否正确 show slave status\G 查看主从同步是否正确 确保如下两条参数,是yes,即主从复制正确
Relay_Master_Log_File: qishi-logbin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes 6.此时mariadb数据库,请退出root用户,使用普通用户配置,因为root身份权限太大,无法达到read-only效果
6.此时mariadb数据库,请退出root用户,使用普通用户配置,因为root身份权限太大,无法达到read-only效果
6.此时mariadb数据库,请退出root用户,使用普通用户配置,因为root身份权限太大,无法达到read-only效果
6.此时mariadb数据库,请退出root用户,使用普通用户配置,因为root身份权限太大,无法达到read-only效果
6.此时mariadb数据库,请退出root用户,使用普通用户配置,因为root身份权限太大,无法达到read-only效果 7. mysql -uyuanqing -p 8.此时在主库写入数据,查看从库是否正确同步 9.从库无法写入数据,即为正常 10.完成主从同步,读写分离实验!!!!

核心步骤截图

开启主从配置关键语句

主从同步开启成功的标记,两个yes

MYSQL 主从复制,读写分离(8)的更多相关文章

  1. mysql主从复制-读写分离

    mysql主从复制+读写分离 环境:mysql主:193.168.1.1mysql从:193.168.1.2amoeba代理:193.168.1.3########################## ...

  2. mysql主从复制-读写分离-原理

    Mysql主从复制和读写分离 在实际的生产环境中,如果对mysql数据库的读和写都在一台数据库服务器中操作,无论是在安全性.高可用性,还是高并发等各个方面都是不能满足实际需求的.因此,一般通过主从复制 ...

  3. MySQL 主从复制&读写分离 简介

    1. 读写分离&读写分离 简介 主从同步延迟 分配机制 解决单点故障 总结 2. 主从复制&读写分离 搭建 搭建主从复制(双主) 搭建读写分离 1. 读写分离&读写分离 简介 ...

  4. Mycat+MySql 主从复制-读写分离 看这一篇就够了

    ​ 通过mycat和mysql的主从复制配合搭建数据库的读写分离,可以实现mysql的高可用性,下面我们来搭建mysql的读写分离. 1.一主一从 1.在node01上修改/etc/my.cnf的文件 ...

  5. mysql主从复制+读写分离 菜鸟入门

    MYsql主从复制 1.mysql主从复制原理: Master将数据变化记录到二进制日志中[binary log] Slave将master的二进制日志[binary log]拷贝到自己的中继日志[r ...

  6. Mycat实现mysql主从复制(读写分离)

    数据库性能瓶颈主要原因: 随着用户数的增多,带来的是数据库连接的大幅度增长 随着业务体量的增长,表数据量(空间存储的问题)的大幅增长,其中涉及到索引的优化,mysql默认的索引是硬盘级别的,BTREE ...

  7. Mysql主从复制读写分离

    一.前言:为什么MySQL要做主从复制(读写分离)?通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低.为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来 ...

  8. MySQL主从复制&读写分离&分库分表

    MySQL主从复制 MySQL的主从复制只能保证主机对外提供服务,从机是不提供服务的,只是在后台为主机进行备份数据 首先我们说说主从复制的原理,这个是必须要理解的玩意儿: 理解: MySQL之间的数据 ...

  9. MySQL主从复制读写分离如何提高从库性能-实战

    在做主从读写分离时候,需要注意主从的一些不同参数设置,来提高从库的性能,提高应用读取数据的速度,这样做很有必要的. 做读写分离复制主从参数不同设置如下(需要根据自己应用实际情况来设置): parmet ...

随机推荐

  1. IntelliJ IDEA中 todo的使用

    在代码的注释部分加入TODO 大小写忽略,如下图所示 查看项目中有哪些待办项,所下图所示

  2. RESTful规范

    一. 什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” REST从资源的角 ...

  3. 小苹果WP(实验吧-隐写术)

    本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=706 前言:本文是实验吧训练题库里隐写术部分的一道题:"小苹果"的Write Up. 题目链接: ...

  4. Windows上设置Mozilla Thunderbird邮件客户端后台运行

    作者:荒原之梦 操作系统: Windows 10 Thunderbird版本: 52.6.0(32-bit) Thunderbird官网页面:https://www.mozilla.org/zh-CN ...

  5. 【基于url权限管理 shiro(一)】--基础

    只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源.权限管理包括用户认证和授权两部分.   用户认证 1.概 ...

  6. 【爬虫】Xpath高级用法

    xpath速度比较快,是爬虫在网页定位中的较优选择,但是很多网页前端代码混乱难以定位,而学习定位也较为不易(主要是全面的教程较少),这里列出一点编程过程中可能有用的东西,欢迎共同学习批评指正.试验环境 ...

  7. Reactor和Proactor模式

    在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作.同步和异步 同步和异步是针对应用程序和内 ...

  8. Java多线程简介

    Java多线程简介 Java中内置了对多线程的支持,让多线程的开发方便很多,但同时也带来了另外的复杂,线程间的交互以及很多的不确定性让多线程又显得很复杂.在此只是针对Java中多线程的基础做些说明,有 ...

  9. 【最小生成树+贪心】BZOJ1821: [JSOI2010]Group 部落划分 Group

    Description 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗.只是,这一切都成 ...

  10. bzoj 1189 紧急疏散 网络流

    二分答案,网络流判断 将每个门拆点,每个人连向每个门的dis~当前解 然后跑最大流,如果等于人数,即为可行解 #include<cstdio> #include<iostream&g ...