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优化(三)——主从复制的更多相关文章

  1. MySQL优化三(InnoDB优化)

    body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10 ...

  2. 【Mysql优化三章】第一章

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/Bv5f4b8Peex/article/details/78130845 如今网上的好多mysql优化 ...

  3. MySQL优化三 表结构优化

    由于MySQL数据库是基于行(Row)存储的数据库,而数据库操作 IO 的时候是以 page(block)的方式,也就是说,如果我们每条记录所占用的空间量减小,就会使每个page中可存放的数据行数增大 ...

  4. MySQL优化(三):优化数据库对象

    二.优化数据库对象 1.优化表的数据类型 应用设计的时候需要考虑字段的长度留有一定的冗余,但不推荐很多字段都留有大量的冗余,这样既浪费磁盘空间,也在应用操作时浪费物理内存. 在MySQL中,可以使用函 ...

  5. MySQL 优化 (三)

    参数优化 query_cache_size (1) 简介: 查询缓存简称QC,使用查询缓冲,mysql将查询结果存放在缓冲区中,今后对于同样的select语句(区分大小写),将直接从缓冲区中读取结果. ...

  6. mysql优化三

    1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的.当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一 ...

  7. MySql优化之主从复制

    第一步: 配置节点信息(配置完毕重启mysql) 找到my.cnf配置文件,这个文件在etc目录下使用命令修改my.cnf文件 vi /etc/my.cnf 主节点配置: server-id =55 ...

  8. 大型网站提速关键技术(页面静态化,memcached,MySql优化)(三)

    页面静态化的技术实现有两种方式 使用PHP自己的缓存机制 先说明一下OB缓存的机制. ob1.php 代码:说明的ob的各个用法->项目中 ☞ 如何打开ob缓存 ①     配置php.ini ...

  9. mysql优化(三)–explain分析sql语句执行效率

    mysql优化(三)–explain分析sql语句执行效率 mushu 发布于 11个月前 (06-04) 分类:Mysql 阅读(651) 评论(0) Explain命令在解决数据库性能上是第一推荐 ...

随机推荐

  1. Html / XHtml 解析 - Parsing Html and XHtml

    Html / XHtml 解析 - Parsing Html and XHtml HTMLParser 模块 通过 HTMLParser 模块来解析 html 文件通常的做法是, 建立一个 HTMLP ...

  2. 配置nginx代理服务器访问tomcat服务

    nginx原配置文件如下: #user nobody; worker_processes ; #error_log logs/error.log; #error_log logs/error.log ...

  3. vue element 表头添加斜线

    <template> <div class="app-container"> <el-table :data="tableData3&quo ...

  4. JS水仙花数

    题目:3位数==个位立方+十位的立方+百位的立方.这个3位数就是水仙花数.要求打印出所有的水仙花数 <body> <div id=d1> </div> <sc ...

  5. UnsupportedClassVersionError : 不支持的类版本错误

    UnsupportedClassVersionError : 不支持的类版本错误 listenerStart配置类的应用程序侦听器时出错 listenerStart Error configuring ...

  6. scrapy的useragent与代理ip

    scrapy中的useragent与代理ip 方法一: user-agent我们可以直接在settings.py中更改,如下图,这样修改比较简单,但是并不推荐,更推荐的方法是修改使用scrapy的中间 ...

  7. ES相关知识

    ElkStack介绍 对于日志来说,最常见的需求就是收集.存储.查询.展示,开源社区正好有相对应的开源项目:logstash(收集).elasticsearch(存储+搜索).kibana(展示),我 ...

  8. IoU-aware Single-stage Object Detector for Accurate Localization

    网络的结构如下: 采用FPN结构,Backbone是RetinalNet,分成了P3~P7共5个Layer,分别训练不同尺寸的Box.每个Layer对应的Head有2个分支,包括一个单独的分支用来预测 ...

  9. Redis实现访问控制频率

    为什么限制访问频率 做服务接口时通常需要用到请求频率限制 Rate limiting,例如限制一个用户1分钟内最多可以范围100次 主要用来保证服务性能和保护数据安全 因为如果不进行限制,服务调用者可 ...

  10. PHP0022:PHP SESSION 设置修改删除