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命令在解决数据库性能上是第一推荐 ...
随机推荐
- 线段树学习----C语言
/* 线段树学习:如果一个节点为i,那么他的左孩子为2I+1,右孩子为2i+2: */ #include<stdio.h> #define min(a,b) a<b?a:b; ]; ...
- Kali Linux初始化
配置SSH 1.将PubKeyAuthtication设置为 yes,同时将注释去除. 2.将PermitRootLogin改为PermitRootLogin yes,同时将注释去除. 3.启动/et ...
- 解决intellij idea新建maven项目,加载archetype慢的问题
File->settings 在VM Options内输入 -DarchetypeCatalog=internal 重启idea
- 珠峰-buffer-流事件
#### Buffer // 字符串的二进制转10进制 let r = parseInt('11111111', 2); console.log(r); // 打印 255 // Number类型转为 ...
- c语言心形告白代码实现
c语言心形告白代码实现 1.彩色告白 include<stdio.h> include<math.h> include<windows.h> include< ...
- 解读前端js中签名算法伪造H5游戏加分
信息安全在我们日常开发中息息相关,稍有忽视则容易产生安全事故.对安全测试也提出更高要求.以下是笔者亲自实践过程: 一. 打开某个数钱游戏HTML5页面,在浏览器 F12 开发工具中,查看的js,如下, ...
- clr via c# delegate
1,委托列子 internal delegate void Feedback(int value); class DelegateRef { public static void StaticDele ...
- php操作mysql(数据库常规操作)
php操作数据库八步走 <?php .建立连接 $connection '); .判断连接是否成功 if (mysqli_connect_error() != null) { die(mysql ...
- 今日确定开源近两年来的EA程序
从2018年开始研究mt4的mql,在2019年主要设计了NinjaLoveFishEA这款网格程序,稳定运行了1年多,今年的伊朗被袭击,造成金价大幅上涨,-18%止损我离场后,决定不再继续研究了. ...
- Web服务器开发
ip地址和端口号 ip地址用来定位计算机 端口号用来定位具体的应用程序 一切需要联网通信的软件都会占用一个端口号 端口号的范围从0-65536之间 在计算机中有一些默认端口号最好不要使用 如http服 ...