MySQL优化(三)——主从复制
1.MySQL高可用
主从复制 一主多备 多主多备
2.MySQL主从复制
主机所有写的数据都会生成二进制SQL日志执行文件,从机只需要将SQL日志执行文件获取到,然后进行数据同步即可
2.1 MySQL环境搭建
2.1.1 连接到虚拟机,在/usr/local下新建一个文件夹为mysql,将tar包上传到次目录当中
2.1.2 切换到/usr/local/mysql目录,进行拆包
tar -xvf MySQL-5.5.44-1.linux2.6.x86_64.rpm-bundle.tar
2.1.3 安装mysql客户端
rpm -ivh MySQL-client-5.5.44-1.linux2.6.x86_64.rpm 如果报错依赖检测失败
rpm -ivh MySQL-client-5.5.44-1.linux2.6.x86_64.rpm --nodeps
2.1.4 安装服务端
rpm -ivh MySQL-server-5.5.44-1.linux2.6.x86_64.rpm --nodeps
安装服务端,如果当前虚拟机有mysql报错,出现版本冲突 yum remove mysql-libs
2.1.5 检测是否安装客户端和服务器
rpm -qa|grep -i mysql
2.1.6 启动mysql服务
service mysql start 停止:service mysql stop 重启:service mysql restart
2.1.7 mysql默认安装完毕后是没有密码的 更改密码mysqladmin -uroot -p password '新密码'
2.1.8 登陆mysql服务器
mysql -uroot -p
2.1.9 SQLyog去连接虚拟机mysql
连接报1130错误,没有权限进行远程连接,更改权限为%
1.登陆mysql服务器
2.切换到mysql数据库下
3.查询当前用户表中用户名和host信息,发现host为127.0.0.1代表只能本机使用root ,外界用不了
select user,host from user;
4.更改权限,将host改为%,如果报ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY’ 不用理会
update user set host='%' where user='root';
5.select user,host from user;
6.刷新权限
flush privileges;
7.退出客户端,重启mysql,然后再次使用SQLyog去连接
测试连接,出现如下界面就是成功了,如果报错,尝试关闭虚拟机防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

2.2 搭建主从复制
2.2.1 配置节点信息
找到my.cnf配置文件,rpm方式安装在/etc下没有该文件,mysql默认启动的时候会加载/usr/share/mysql/my-medium.cnf,只需要将这个文件复制到/etc下改名为my.cnf即可
配置主节点:
1.执行 cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
2.编辑 vi /etc/my.cnf文件
3.更改如下内容:
server-id = 保证唯一,建议配置成ip地址第四位
log-bin=mysql-bin 为了让主机生成二进制SQL日志执行文件
4.重启mysql服务器
5.查看当前server-id是否生效,使用sqlyog工具查看,如果返回值为0或者1代表是默认的
SHOW VARIABLES LIKE 'server_id'
我这里主机配置的是111

6.查看当前主服务器状态,如果看到的不是null代表成功~
SHOW MASTER STATUS

配置从节点:
1.执行 cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
2.编辑 vi /etc/my.cnf文件
3.更改如下内容:
server-id = 122
log-bin=mysql-bin
这一步设置的是要同步的数据库,此处用test测试,如需同步多个数据库,多添加几条如下代码,更换成相应数据库名即可
binlog_do_db=test
4.重启mysql服务器
5.查看当前server-id是否生效,使用sqlyog工具查看,如果返回值为0或者1代表是默认的
SHOW VARIABLES LIKE 'server_id'
2.2.2 设置服务器读取权限
主服务器创建一个账号,将账号分配从服务器,从服务器拿到该账号然后才可以执行同步数据操作
GRANT REPLICATION SLAVE ON *.* TO 'chxinz'@'%' IDENTIFIED BY '123456';

2.2.3 从服务器执行同步
从服务器执行同步操作,使用主服务器生成的权限账号,将二进制文件同步
##设置同步,根据主服务器ip地址,生成的权限账号的用户名和密码以及二进制文件名称还有文件大小进行同步
CHANGE MASTER TO MASTER_HOST='192.168.42.111',MASTER_USER='chxinz',MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=243;

主机:
##开启同步
START SLAVE
此时,在主机test数据库创建一个test001表

从机也同步了这个表

MySQL优化(三)——主从复制的更多相关文章
- MySQL优化三(InnoDB优化)
body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10 ...
- 【Mysql优化三章】第一章
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/Bv5f4b8Peex/article/details/78130845 如今网上的好多mysql优化 ...
- MySQL优化三 表结构优化
由于MySQL数据库是基于行(Row)存储的数据库,而数据库操作 IO 的时候是以 page(block)的方式,也就是说,如果我们每条记录所占用的空间量减小,就会使每个page中可存放的数据行数增大 ...
- MySQL优化(三):优化数据库对象
二.优化数据库对象 1.优化表的数据类型 应用设计的时候需要考虑字段的长度留有一定的冗余,但不推荐很多字段都留有大量的冗余,这样既浪费磁盘空间,也在应用操作时浪费物理内存. 在MySQL中,可以使用函 ...
- MySQL 优化 (三)
参数优化 query_cache_size (1) 简介: 查询缓存简称QC,使用查询缓冲,mysql将查询结果存放在缓冲区中,今后对于同样的select语句(区分大小写),将直接从缓冲区中读取结果. ...
- mysql优化三
1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的.当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一 ...
- MySql优化之主从复制
第一步: 配置节点信息(配置完毕重启mysql) 找到my.cnf配置文件,这个文件在etc目录下使用命令修改my.cnf文件 vi /etc/my.cnf 主节点配置: server-id =55 ...
- 大型网站提速关键技术(页面静态化,memcached,MySql优化)(三)
页面静态化的技术实现有两种方式 使用PHP自己的缓存机制 先说明一下OB缓存的机制. ob1.php 代码:说明的ob的各个用法->项目中 ☞ 如何打开ob缓存 ① 配置php.ini ...
- mysql优化(三)–explain分析sql语句执行效率
mysql优化(三)–explain分析sql语句执行效率 mushu 发布于 11个月前 (06-04) 分类:Mysql 阅读(651) 评论(0) Explain命令在解决数据库性能上是第一推荐 ...
随机推荐
- css3 3d api
perspective 人看东西的距离 perspective: 500; 越小3d效果越好 perspective-origin观察视点.此处默认为视图的中心点 transform-origin:2 ...
- 见异思迁:K8s 部署 Nginx Ingress Controller 之 kubernetes/ingress-nginx
前天才发现,区区一个 nginx ingress controller 竟然2个不同的实现.一个叫 kubernetes/ingress-nginx ,是由 kubernetes 社区维护的,对应的容 ...
- NAT 地址转换
NAT功能 NAT不仅能解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机.1.宽带分享:这是 NAT 主机的最大功能.解决IP4地址短缺的问题 ...
- gRPC in ASP.NET Core 3.x - gRPC 简介
gRPC的结构 在我们搭建gRPC通信系统之前,首先需要知道gRPC的结构组成. 首先,需要一个server(服务器),它用来接收和处理请求,然后返回响应. 既然有server,那么肯定有client ...
- 【HDU - 1069】 Monkey and Banana (基础dp)
Monkey and Banana 直接写中文了 Problem Statement 一组研究人员正在设计一项实验,以测试猴子的智商.他们将挂香蕉在建筑物的屋顶,同时,提供一些砖块给这些猴子.如果猴子 ...
- printf函数中*修饰符的作用,如:%*d
在printf函数中,我们可以用数字修饰来控制打印的字段宽度和精度,如下(为强调视觉效果,均填充0): #include <stdio.h> int main() { ; float f= ...
- NIO、多路复用的终极奥义
1.现在要让有限的系统资源发挥更大的效率,一个最直接的方式就是进行资源复用,比如线程资源复用. 2.线程资源复用的一个最有效的方式就是使用事件驱动模型进行异步调用. 3.Reactor模型就是基于事件 ...
- 如何用apply实现一个bind?
面试题:如何用apply实现一个bind? Function.prototype._bind = function(target) { // 保留调用_bind方法的对象 let _this = th ...
- redis 5.0.7 源码阅读——动态字符串sds
redis中动态字符串sds相关的文件为:sds.h与sds.c 一.数据结构 redis中定义了自己的数据类型"sds",用于描述 char*,与一些数据结构 typedef c ...
- Android Vitamio初探
GitHub: https://github.com/yixia/VitamioBundle 1.下载完毕导入用Android Studio打开 2.新建Mode,引入依赖 dependencies ...