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命令在解决数据库性能上是第一推荐 ...
随机推荐
- 13-MyBatis03(逆向工程)
MyBatis逆向工程 1.导入jar包 <dependency> <groupId>org.mybatis</groupId> <artifactId> ...
- 一个sio.c的实现及遇到的多任务执行问题
https://sourceforge.net/p/cadcdev/lwip/ci/491e00038f26dc5d775f120aa49519a066819ebf/tree/kos/sio.c /* ...
- Apache 安装 静态编译 动态编译
2014-09-19 09:53 (分类:Linux) 排名第一的web服务器. (linux环境:CentOS release 6.5 (Final)) 安装出错:如下 configure: err ...
- PWA(Progressive web apps),渐进式 Web 应用
学习博客:https://www.jianshu.com/p/098af61bbe04 学习博客:https://www.zhihu.com/question/59108831 官方文档:https: ...
- Java的七大排序
一.各个算法的时间复杂度 二,具体实现 1.直接选择排序 基本思想:在长度为n的序列中,第一次遍历找到该序列的最小值,替换掉第一个元素,接着从第二个元素开始遍历,找到剩余序列中的最小值,替换掉第二个元 ...
- C# 小游戏-拼图魔方【Game Puzzle】
工作闲暇之余去逛了逛CodeProject,刚好现有项目主要用到就是winform,浏览了下照片,找到上周带着蛋挞打疫苗回家的照片,于是新生一记,如何把这些图片玩起来~ 80后应该都有印象,小时候有种 ...
- python基础入门之一 —— 变量与运算符
1.标识符 由数字,字母,下划线组成 不能由数字开头 不能使用内置关键字 严格区分大小 2.数据类型 数值:int (整型) float(浮点型) 布尔型:True(真) False(假) str ( ...
- html网页基本结构
<!DOCTYPE> 不是 HTML 标签.它为浏览器提供一项信息(声明),即 HTML 是用什么版本编写的. HTML5 DOCTYPE 的 HTML 文档类型如下: <!DOCT ...
- Vue之计算属性Computed和属性监听Watch,Computed和Watch的区别
一. 计算属性(computed) 1.计算属性是为了模板中的表达式简洁,易维护,符合用于简单运算的设计初衷. 例如: <div id="app"> {{ myname ...
- 02-flink时间语义 与 Window 基础概念与实现原理
Flink 多种时间语义对比 Flink 在流应用程序中支持不同的 Time 概念,就比如有 Processing Time.Event Time 和 Ingestion Time.下面我们一起来看看 ...