MYSQL 主从复制,读写分离(8)
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)的更多相关文章
- mysql主从复制-读写分离
		
mysql主从复制+读写分离 环境:mysql主:193.168.1.1mysql从:193.168.1.2amoeba代理:193.168.1.3########################## ...
 - mysql主从复制-读写分离-原理
		
Mysql主从复制和读写分离 在实际的生产环境中,如果对mysql数据库的读和写都在一台数据库服务器中操作,无论是在安全性.高可用性,还是高并发等各个方面都是不能满足实际需求的.因此,一般通过主从复制 ...
 - MySQL 主从复制&读写分离 简介
		
1. 读写分离&读写分离 简介 主从同步延迟 分配机制 解决单点故障 总结 2. 主从复制&读写分离 搭建 搭建主从复制(双主) 搭建读写分离 1. 读写分离&读写分离 简介 ...
 - Mycat+MySql 主从复制-读写分离 看这一篇就够了
		
 通过mycat和mysql的主从复制配合搭建数据库的读写分离,可以实现mysql的高可用性,下面我们来搭建mysql的读写分离. 1.一主一从 1.在node01上修改/etc/my.cnf的文件 ...
 - mysql主从复制+读写分离 菜鸟入门
		
MYsql主从复制 1.mysql主从复制原理: Master将数据变化记录到二进制日志中[binary log] Slave将master的二进制日志[binary log]拷贝到自己的中继日志[r ...
 - Mycat实现mysql主从复制(读写分离)
		
数据库性能瓶颈主要原因: 随着用户数的增多,带来的是数据库连接的大幅度增长 随着业务体量的增长,表数据量(空间存储的问题)的大幅增长,其中涉及到索引的优化,mysql默认的索引是硬盘级别的,BTREE ...
 - Mysql主从复制读写分离
		
一.前言:为什么MySQL要做主从复制(读写分离)?通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低.为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来 ...
 - MySQL主从复制&读写分离&分库分表
		
MySQL主从复制 MySQL的主从复制只能保证主机对外提供服务,从机是不提供服务的,只是在后台为主机进行备份数据 首先我们说说主从复制的原理,这个是必须要理解的玩意儿: 理解: MySQL之间的数据 ...
 - MySQL主从复制读写分离如何提高从库性能-实战
		
在做主从读写分离时候,需要注意主从的一些不同参数设置,来提高从库的性能,提高应用读取数据的速度,这样做很有必要的. 做读写分离复制主从参数不同设置如下(需要根据自己应用实际情况来设置): parmet ...
 
随机推荐
- maven 编译出错Fatal error compiling: 无效的目标发行版: 1.8 -> [Help 1] 解决办法
			
这几天在为公司项目搭建一个后台框架,使用的是eclipse-Mars自带的maven插件,在maven进行编译的时候,出现Fatal error compiling: 无效的目标发行版: 1.8 -& ...
 - 并行(Parallelism)与并发(Concurrency)
			
并行(Parallelism):多任务在同一时刻运行.例如,多个任务在多核处理器上运行. 并发(Concurrency):两个或者两个以上的任务在一段时间内开始.运行.完成,这意味着它们不是在同一时刻 ...
 - SSM-Spring-02:Spring的DI初步加俩个实例
			
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- DI:依赖注入 第一个DEMO:域属性注入 java类:(Car类和Stu类,学生有一辆小汽车) packag ...
 - Linux内核编程、调试技巧小集
			
1. 内核中通过lookup_symbol_name获取函数名称 内核中很多结构体成员是函数,有时可能比较复杂不知道具体使用哪一个函数.这是可以通过lookup_symbol_name来获取符号表名称 ...
 - VirtualBox不能为虚拟电脑打开一个新任务——The VirtualBox kernel modules do not match this version of VirtualBox
			
本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=608 一.问题产生的环境 物理机操作系统:Ubuntu 17.10 (Ubuntu版本查看命令: cat /etc/ ...
 - mongodb的设计特征
			
MongoDB 的设计目标是高性能.可扩展.易部署.易使用,存储数据非常方便.其主要功能特性如下. (1)面向集合存储,容易存储对象类型的数据.在MongoDB 中数据被分组存储在集合中,集合类似 ...
 - 跨域问题实践总结!   上(JSONP/document.domain/window.name)
			
1. JSONP 首先要介绍的跨域方法必然是 JSONP. 现在你想要获取其他网站上的 JavaScript 脚本,你非常高兴的使用 XMLHttpRequest 对象来获取.但是浏览器一点儿也不配合 ...
 - 从零开始学Web之HTML(二)标签、超链接、特殊符号、列表、音乐、滚动、head等
			
大家好,这里是 Daotin 从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享 ...
 - java编程思想-第五章-某些练习题
			
参考https://blog.csdn.net/caroline_wendy/article/details/46844651 10&11 finalize()被调用的条件 Java1.6以下 ...
 - uuid.go
			
package uuid import "time" func GenerateUUID() uint64 { return uint64(time.Now().UnixN ...