一、安装mysql

  1. 检测当前centos是否安装了mysql:yum list installed | grep mysql

    yum list installed | grep mariadb         yum remove mariadb-libs.x86_64   并且移除/etc/my.cnf文件   rm -r /etc/my.cnf

     由于mariadb是mysql的一个分支在centos7中会默认安装该数据库,需要将其写卸载

    2.mysql5.7.19版本需要安装libnuma相关的依赖包

    yum list installed |grep numactl   查询是否安装

    yum install numactl 安装

    3.解压mysql5.7.17到/usr/local/mysql下(路径可自行指定)

    groupadd mysql    useradd -g mysql mysql      passwd mysql

    检查指定mysql组是否存在:more /etc/group | grep mysql

    检查指定用户所属组:groups mysql

    检查当前活跃(在线)的用户列表:w

     4.检查是否安装了 libaio

    rpm -qa | grep libaio    yum -y install libaio

5.配置my.cnf文件

    cp my-default.cnf /etc/my.cnf

       

     安装:./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

     

     注意需要记住:A temporary password is generated for root@localhost: =:,tUa2Yvr(7

     启动脚本添加到资源目录中:cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

                              授权  chmod +x /etc/rc.d/init.d/mysqld

           添加到系统服务    chkconfig --add mysqld

         校验服务是否生效    chkconfig --list mysqld    其中2 3 4 5表明开机启动

         

启动命令: service mysqld start

         

         添加环境变量:vim /etc/profile    注意添加完后需要刷新配置信息  source /etc/profile

             

         登录   mysql -uroot -p

         登录成功后设置密码  SET PASSWORD = PASSWORD('123456');(初次登录)

           授权远程访问  GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

        

                

        创建只读账号: GRANT Select ON *.* TO 'readonly'@'%'  IDENTIFIED BY "123456";

        创建可写账号: GRANT ALL PRIVILEGES ON *.* TO 'write'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

        关闭临时防火墙:systemctl stop firewalld

在搭建一台备份mysql服务器(参照上面即可)

二、通过 wget安装

  1. 检测当前centos是否安装了mysql:yum list installed | grep mysql    

    yum list installed | grep mariadb         yum remove mariadb-libs.x86_64   并且移除/etc/my.cnf文件   rm -r /etc/my.cnf  (与上面第一点相同)

    2. 下载mysql的repo

    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

    安装插件  yum -y install wget(没有wget命令时安装)

    3.安装  sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm

    4.安装mysql   sudo yum install mysql-server

注意:若报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' 表示没有权限:chown root /var/lib/mysql/     然后重启mysql:service mysqld restart

   5.登录:mysql -u root -p     修改密码  update user set password=password('123456') where user='root';

   6.重启  service mysqld restart

      7.设置远程登录:GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";

   8.重启并关闭防火墙 service mysqld restart    systemctl stop firewalld.service

三、主节点配置

  1. vim /etc/my.cnf   添加信息:server_id=213 #唯一id 一般使用ip最后一段     log-bin=mysql-bin   #开启日志文件

      

   2.重启mysql:service mysqld restart

   3.验证配置信息是否成功 show variables like '%service_id%' ;   show master status;

四、从节点配置

   1.克隆主节点

   2.修改配置文件:vim /etc/my.cnf

server_id=122     log-bin=mysql-bin   binlog_do_db=test   #需要同步的数据库,多个使用逗号分隔

   3.重启

   4.从节点中配置同步信息

   change master to master_host='主mysql_ip',master_user='root',master_password='123456',

master_log_file='mysql-bin.000002',master_log_pos=216;

  其中master_log_file 和master_log_pos  表示主mysql文件名,和同步位置,使用show master status;在主节点出现

   5.开始同步 : start slave

   6.检查同步状态:show slave status;

   注意如果是使用虚拟机克隆功能在复制从节点,同步时下面可能是no

是由于克隆时/etc/my.cnf中UUID重复了。rm -rf /var/lib/mysql/auto.cnf  然后重启即可。

五、主从同步原理

  借助binlog日志文件中的SQL执行命令实现主从复制,即master节点执行完一条SQL命令通过日志形式在salve节点在执行一次,在从库中有两个线程一个I/O和一个SQL线程,I/O线程主要去请求主库的binlog日志并将日志写到relay log中。主库会生成一个log dump线程,用来给I/O线程传递binlog,SQL线程读取relay log文件中的日志,并解析成相应的操作。

六、springboot读写分离

  预计 五一节 更新

七、MyCat搭建

  1.下载mycat:http://dl.mycat.io/1.6.5/

2.在cnf文件下有:server.xml  :Mycat配置文件,包含账号、参数等信息

                schema.xml:  Mycat对应实际数据库和表的配置

           rule.xml      :   Mycat水平分库分表规则

mysql主从服务搭建的更多相关文章

  1. 在cnetos7上搭建mysql主从服务

    本文主要是介绍在centos上搭建mysql的主从服务器.如果没有搭建过的,可以查看我以前的博客,里面有详细的安装centos和在centos上安装mysql的说明. 一.安装从虚拟机: 1.右键—& ...

  2. 【Mysql】Mysql主从库搭建过程(爬完坑后整理所得)

    Mysql主从数据库搭建流程 新手开始学习mysql主从库,遇到一些问题,总结后写出以下流程 下面以5.7.23版本为例介绍 第一步:去官网下载5.7.23版本的免安装压缩包形式的mysql文件,贴上 ...

  3. MYSQL主从数据库搭建

      sc delete "服务名"    删除服务   环境: (以下是我这次搭建所使用的环境) 主数据库: 系统:ubuntu : MYSQL  5.1.63 :ip:192.1 ...

  4. mysql主从架构搭建

    1.配置文件,开启二进制日志 vim /etc/my.cnf 在mysql下增加如下内容 server-id= log-bin=mysql-bin relay-log=mysql-relay 2.登录 ...

  5. 关于mysql集群主从服务器搭建

    在高并发流量下,数据库往往是服务端的瓶颈,由于数据库数据需要确保落地,同时保证数据同步,数据即时性,有效性的问题,导致数据库不能像平常后端程序一样负载均衡. 那么在大并发下,该如何缓解数据库的压力呢? ...

  6. 《高可用MySQL》2 – 单机版MySQL主从配置

    这里搭建的主从是最简单的单一主从复制(即一个Master和一个slave,没有任何的热机备份和多slave),该主从结构的基本拓扑图如下所示: 建立基本的主从复制可以总结为以下三个基本步骤: 配置ma ...

  7. MySQL主从数据库同步延迟问题解决(转)

    最近在做MySQL主从数据库同步测试,发现了一些问题,其中主从同步延迟问题是其中之一,下面内容是从网上找到的一些讲解,记录下来以便自己学习: MySQL的主从同步是一个很成熟的架构,优点为:①在从服务 ...

  8. MySQL主从同步

    脚本 [root@test scripts]# cat ss.sh #!/bin/bash . /etc/init.d/functions MYUSER=root MYPASS=c565f972 SO ...

  9. zabbix--监控MySQL主从状态

    zabbix监控MySQL主从状态 搭建MySQL主从后,很多时候不知道从的状态是否ok,有时候出现异常不能及时知道,这里通过shell脚本结合zabbix实现监控并告警 一般情况下,在MySQL的从 ...

随机推荐

  1. 51nod 1228、1258 序列求和

    这里一次讲两题...貌似都是板子? 所以两题其实可以一起做 [雾 noteskey 总之就是伯努利数的两道入门题啦,就是第二道有点鬼畜了,居然要任意模数的!(好吧是 1e9+7 但也没什么区别了) 伯 ...

  2. Quartz+TopShelf实现定时任务

    转自 https://www.cnblogs.com/frozenzhang/archive/2016/04/29/5443778.html 1.创建控制台程序 2.添加引用 添加TopShelf的引 ...

  3. 【原创】运维基础之Docker(3)搭建私有仓库

    下载并启动registry $ docker pull registry$ docker run --name my_registry -d -p 5000:5000 -v /var/lib/regi ...

  4. Python-Django-BBS

    一个项目从无到有 1 需求分析 -登录ajax,图形验证码 -注册forms和ajax,上传头像,头像预览 -博客首页 -个人站点 -点赞,点踩 -评论 -根评论 -子评论 -后台展示 -添加文章 - ...

  5. 使用 Sonar 检测代码质量

    经历了一段时间的加班赶项目进度之后,今天终于闲下来了.忽然不知道干啥.于是,想着做点什么吧.突然想起了码云上面有个代码分析的功能,用的是 Sonar 于是想来玩玩这个. 一.下载Sonar,和初始化, ...

  6. [转]IntelliJ IDEA 使用spring-boot-devtools热部署无效解决办法

    来源:https://www.jianshu.com/p/4d8aa6dfd103 相信大部分使用IntelliJ IDEA的同学都会遇到这个问题,即使项目使用了spring-boot-devtool ...

  7. 视频转码成mp4格式,添加关键帧,添加元数据,把元数据放在第一帧,可拖动

    作者测试是在windows下使用,所以下载的页面地址是: http://ffmpeg.zeranoe.com/builds/点击页面上的Download FFmpeg git-738ebb4 64-b ...

  8. python基础篇_003_函数

    python中的函数 1.函数的目的 .避免代码冗余 .增强可读性 2.函数的定义与调用 # 定义函数 使用关键字def """ 1.定义函数: def 函数名(): 函 ...

  9. Java 实现视频下载功能

    public static boolean httpDownload(String httpUrl, String saveFile) { // 1.下载网络文件 int byteRead; URL ...

  10. Android系统层次解析

    目标:从宏观上解释Android整个系统结构 来源: <Android4高级编程> 目录: 1. Android软件栈结构 一.Android软件栈结构 Android软件栈分为四个结构: ...