zoukankan      html  css  js  c++  java
  • Mysql之Linux中mariadb主从复制

    master主机mysql安装配置

      1.下载mariadb(Centos7开始mysql的名字)

        (1)其它方式(不推荐):rpm安装/软件源安装

        (2)yum安装(推荐):

          ①centos官方的yum源(功能少)

          ②阿里云的yum源(精简版)

            配置yum源仓库:/etc/yum.repos.d(yum工具介绍已经配置)

            yum install mariadb-server mariadb 

          ③mysql官方的yum源(下载较慢,文件完整性最好)

            A.手动配置仓库目录:

              a.找到yum仓库目录,创建repo文件-------touch /etc/yum.repos.d/mariadb.repo 

              b.写入指定的mysql官方yum源           

    [mariadb]

    name = MariaDB

    baseurl = http://yum.mariadb.org/10.1/centos7-amd64

    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

    gpgcheck=1

                c.此时yum会自动的加载这个repo文件,读取内容

              d.下载mariadb数据库,服务端和客户端

            B.yum install MariaDB-server MariaDB-client

      2.启动mariadb数据库

        systemctl start mariadb---------用管理工具启动数据库

        systemcrl status mariadb-------查看状态,或者ps进程,netstat端口信息      

      3.初始化数据库,清除匿名用户,以及test数据库,保证数据库安全,允许mysql远程登录

        mysql_secure_installation---------初始化命令

        注意允许远程登陆

      4.修改mariadb数据库的的中文支持

        (1)s查看数据库编码信息

        (2)修改配置文件(yum源安装的在/etc/my.cnf),支持中文

          vim /etc/my.cnf          

    #服务端的编码添加如下内容

    [mysqld]

    character-set-server=utf8

    collation-server=utf8_general_ci

    #客户端的编码如下

    [client]

    default-character-set=utf8

    [mysql]

    default-character-set=utf8

      5.mysql远程登录的设置

        grant all privileges on *.* to root@'%' identified by '123456';---------------不授权,远程无法登陆

      6.数据库的备份与恢复

        备份-----mysqldump -uroot -p --all-databases > /tmp/alldata.sql

        恢复:

          方式一:进入数据库,执行source命令读取sql文件:

              (1)mysql -uroot -h192.168.160.134 -p 

              (2)source /tmp/alldata.sql  

          方式二:使用登录命令导入数据

              mysql -uroot -p < /tmp/alldata.sql

          方式三:数据量较大时,使用第三方工具

      7.mysql主从复制(master-slave)

        主从机安装好mariadb数据库

        master主机:

          (1)修改mysql配置文件,开启binlog日志功能------vim /etc/my.cnf

    #服务端添加一下代码

    [mysqld]

    server-id=1

    log-bin=mastermysql-bin

          (2)重启数据库生效binlog日志文件--------systemctl restart mariadb

          (3)登录数据库---------mysql -uroot -p

          (4)主库master创建用于主从复制的用户---------create user 'abc'@'%' identified by '123456';

          (5)授权slave给主从复制的用户:

              grant replication slave on *.* to 'abc'@'%';

              grant select on *.* to 'abc'@'%';-------------授权查看给主从复制账号,以便后期登录使用

          (6)进行锁表,防止在主从复制设置过程中数据写入------flush table with read lock;

          (7)导出当前master主库数据,发送给slave从库,保证起点的一致性:

              mysqldump -uroot -p --all-databases > /tmp/alldata.sql

              scp /tmp/alldata.sql root@192.168.160.130:/tmp/

            (8)slave从库机读取/tmp/alldata.sql进行master主库数据同步,删除多余数据库,同时进行slave从库机配置

          (9)slave从库机配置完后才能后,解锁,进行数据写入,查看从库是否正常执---------解锁-----------unlock tables;

    slave从机mysql安装配置

      下载安装同master主机

        下载mariadb-------------启动mariadb----------------是否初始化自选

      7-(8)-1.将master主机的数据库备份文件发送到slave进行恢复 

        目的是保持主从数据库的数据和配置的一致性 

        mysql -uroot -p < /tmp/alldata.sql

        删除多余的数据库

      7-(8)-2.修改slave从库机的配置文件,开启id, 设为只读模式-----------vim /etc/my.cnf

    #服务端添加一下代码

    [mysqld]

    server-id=1000

    read-only=true  

        7-(8)-3.重启slave从库机的mariadb数据库----------systemctl restart mariadb

      7-(8)-4.登录slave从库机数据库-----------mysql -uroot -p

      7-(8)-5.执行命令,建立主从复制关系

    change master to master_host='192.168.160.134',  --主库master地址

    master_user='abc',                --用于主从复制在主库创建的用户

    master_password='123456',            --用于主从复制在主库创建的用户密码

    master_log_file='mastermysql-bin.000001',       --主库biinary log日志文件,主库my.cnf配置了日志名

    master_log_pos=616;             --主库数据起点(在主库mysql中执行命令show master status可以查看)

        7-(8)-6.开启从库的slave功能-----start salve;

      7-(8)-7查看从库的状态,检测是否复制成功:

        show slave statusG ;

        查看如下两个参数是否是yes,主从复制即为正确:

          Slave_IO_Running: Yes

          Slave_SQL_Running: Yes

      7-(8)-8.重启数据库进入,此时需要输入密码,也可使用主从复制账号登录,和主库机的账号密码一样,回到主机进行解锁操作

        

  • 相关阅读:
    SpringMvc的执行机制和环境搭建
    Flexbox,更优雅的布局
    Laravel框架 mysql 数据库 —— 基本使用
    在 Windows 上安装 Laravel 5.x
    javascript 中的借鸡生蛋
    由斐波那契数列所引发的性能优化
    成为一名优秀的Web前端开发者
    H5之contenteditable
    ionic 集锦
    vm10虚拟机安装Mac OS X10.10教程[转]
  • 原文地址:https://www.cnblogs.com/open-yang/p/11256318.html
Copyright © 2011-2022 走看看