zoukankan      html  css  js  c++  java
  • Centos7 + Mariadb主从配置

    环境:

    主服务器:192.168.100.3   系统 Centos7  test1

    从服务器:192.168.100.6   系统 Centos7  test2

    主服务器配置:

    安装mariadb数据库

    [root@test1 ~]# yum install mariadb mariadb-server -y
    [root@test1 ~]# systemctl start mariadb.service
    [root@test1 ~]# mysql_secure_installation ##初始化数据库,设置root密码等等,需要注意允许root远程连接(实际生产环境中可以另起账号)
    [root@test1 ~]# mysql -u root -p   ##进入数据库,输入密码
    MariaDB [(none)]> show databases;
    创建一个测试数据库DB1:
    MariaDB [(none)]> create database DB1;
    

    赋予数据库DB1连接权限:

    MariaDB [(none)]> grant all privileges on *.* to root@’%’ identified by ‘redhat‘ with grant option;
    MariaDB [(none)]> flush privileges;
    使用DB1创建一个表:
    MariaDB [(none)]> use DB1;
    

    MariaDB [DB1]> create table test (name VARCHAR(20), sex CHAR(1), birth DATE, birthaddr VARCHAR(20));
    MariaDB [DB1]> insert into test values (‘abccs’,’f’,’1995-10-22′,’china’);  ##sql语句插入几行记录
    

    将数据库备份到从服务器

    [root@test1 ~]# mysqldump -h localhost -u root -p DB1 > /root/1.sql 
    [root@test1 ~]# scp -P10060 /root/1.sql root@192.168.100.6:/root/    ##使用SCP命令拷贝到从服务器(test2服务器上,ssh端口为10060)
    

    从服务器配置:

    从服务器按照上面的方法安装mariadb,创建一个空数据库DB1,不需要创建表,为了将主服务器上的mysql还原到从服务器上。

    [root@test2 ~]#yum install mariadb mariadb-server -y
    [root@test2 ~]#systemctl start mariadb.service
    [root@test2  ~]# mysql_secure_installation
    [root@test2   ~]# mysql -u root -p
    MariaDB [(none)]> create database DB1;
    [root@test2   ~]# mysql -h localhost -u root -p DB1 < /root/1.sql
    

    Mysql的主从服务器配置:

    主服务器配置:

    在/etc/my.cnf 添加如下内容:

    注:一定要加入到加到mysqld下面,如果加入的位置或者信息不对的话,执行
    show master status;结果为空;
    

     配置如下:

    #设置服务器ID,为1的表示为主服务器;如果服务器没有以下配置,添加,如果有就跳过。
    server-id=1
    ##启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
    log_bin=mysql-bin?
    ##需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
    binlog-do-db=DB1
    ##不同步mysql系统数据库
    binlog-ignore-db=mysql
    

     

    重启服务

    [root@test1 ~]#systemctl restart mariadb.service   进入mysql,查看数据库主机的配置文件状态
    [root@test1 ~]# mysql -u root -p
    MariaDB [(none)]> show master status;
    

     查看主服务器,出现以上类似信息;如果看不见以下结果或者为空的话,说明my.cnf配置文件配置的有问题,请检查即可。
    这里记住File的值:mysql-bin.000003和Position的值:663,后面会用到。

    从服务器配置:

    配置MySQL从服务器的my.cnf文件;区别就是server-id不一样
    在/etc/my.cnf 添加如下内容:

    #设置服务器ID,为1的表示为主服务器;如果服务器没有以下配置,添加,如果有就跳过。
    server-id=2
    ##启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
    log_bin=mysql-bin?
    ##需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
    binlog-do-db=DB1
    ##不同步mysql系统数据库
    binlog-ignore-db=mysql
    

     

    接下来配置slave,进入从服务器的mysql控制台配置下:

    [root@test2 ~]# mysql -uroot -p
    MariaDB [(none)]> slave stop;
    MariaDB [DB1]> change master to master_host=’192.168.100.3′,master_user=’root’,master_password=’redhat‘,master_log_file=’mysql-bin?.000003’,master_log_pos=663;
    
    说明:change master to master_host='主服务器',master_user='mysql用户名',
    master_password='mysql服务密码',master_log_file='File值',master_log_pos=Postion值;
    
    MariaDB [(none)]> slave start;  ###启动slave
    

     最后我们查看主从同步是否正常:

    MariaDB [(none)]> show slave status G;
    

     

    主要是看 Slave_IO_Running 喝Slave_SQL_Runing 这两个参数是yes就说明主从配置完成。

    如果Slave_IO_Running 是 No,可以参考方法:

    方法如下:

    重置slave.

    slave stop;

    reset slave;

    slave start;

    重新执行show slave status G;

    文中部分材料来源:cnblogs作者

    原文>>更多内容请访问《翼的家园

    本文来自博客园,作者:袁与张,转载请注明原文链接:https://www.cnblogs.com/ytyzhn/p/12659667.html

  • 相关阅读:
    SpringBoot获取配置文件,就这么简单。
    IDEA 插件推荐 —— 让你写出好代码的神器!
    太高效了!玩了这么久的Linux,居然不知道这7个终端快捷键!
    万字长文!一次性弄懂 Nginx 处理 HTTP 请求的 11 个阶段
    一个排查了大半天儿的问题,差点又让 MyBatis 背锅
    使用Flutter开发的抖音国际版
    一文回顾Redis五大对象(数据类型)
    Gradle系列之初识Gradle
    OpenJFX DJ 风格 Java 桌面音乐播放器
    【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!
  • 原文地址:https://www.cnblogs.com/ytyzhn/p/12659667.html
Copyright © 2011-2022 走看看