• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Linux下MySQL数据库的主从同步复制配置

    Linux下MySQL数据库的主从同步配置的好处是可以把这个方式当做是一个备份的方法,用来实现读写分离,缓解一个数据库的压力。让运行海量数据的时候无论是从速度还是效率上都大大提高,Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。这个就是MySQL主从备份原理。下面我们来看下具体同步配置的流程。

    我们先来看下小编测试的环境:

    CentOS 6.5 MySQL主从同步,MySQL版本5.6.25

    主服务器:centos6.5 IP:192.168.1.101

    从服务器:centos6.5 IP:192.168.1.102

    一、主服务器相关配置

    1、创建同步账户并指定服务器地址

    [root@localhost ~]mysql -uroot -p
    mysql>use mysql
    mysql>grant replication slave on *.* to 'testuser'@'192.168.1.102' identified by '12345678';
    mysql>flush privileges #刷新权限

    授权用户testuser只能从192.168.1.102这个地址访问主服务器192.168.1.101的数据库,并且只具有数据库备份的权限

    2、修改/etc/my.cnf配置文件vi /etc/my.cnf

    [mysqld]下添加以下参数,若文件中已经存在,则不用添加

    server-id=1 
    log-bin=mysql-bin #启动MySQL二进制日志系统,
    binlog-do-db=ourneeddb #需要同步的数据库
    binlog-ignore-db=mysql #不同步mysql系统数据库,若还有其它不想同步的,继续添加
    [root@localhost ~]/etc/init.d/mysqld restart #重启服务

    3、查看主服务器master状态(注意File与Position项,从服务器需要这两项参数)

    mysql> show master status;
    +------------------+----------+--------------+------------------+
    | File      | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000012 |   120 | ourneeddb| mysql      |
    +------------------+----------+--------------+------------------+

    4、导出数据库

    导出数据库之前先锁定数据库

    flush tables with read lock;    #数据库只读锁定命令,防止导出数据库的时候有数据写入

    unlock tables; #解除锁定

    导出数据库结构及数据:mysqldump -uroot -p ourneeddb > /home/ourneeddb.sql

    导出存储过程及函数 :mysqldump -uroot -p -ntd -R ourneeddb > ourneeddb_func.sql

    tips:-ntd导出存储过程、-R导出函数

    二、从服务器相关配置

    1、修改/etc/my.cnf配置文件vi /etc/my.cnf

    [mysqld]下添加以下参数,若文件中已经存在,则不用添加

    server-id=2  #设置从服务器id,必须于主服务器不同

    log-bin=mysql-bin  #启动MySQ二进制日志系统

    replicate-do-db=ourneeddb  #需要同步的数据库名

    replicate-ignore-db=mysql  #不同步mysql系统数据库

    [root@localhost~ ]/etc/init.d/mysqld restart #重启服务

    2、导入数据库

    导入过程这里不做阐述

    3、配置主从同步

    [root@localhost~ ]mysql -uroot -p
    mysql>use mysql 
    mysql>stop slave;
    mysql>change master to
       master_host='192.168.1.101',
       master_user='testuser',
       master_password='12345678',
       master_log_file='mysql-bin.000012',
       master_log_pos=120; #log_file与log_pos是主服务器master状态下的File与Position
    mysql>start slave;
    mysql>show slave status\G;
    
    *************************** 1. row ***************************
    Slave_IO_State: Waiting for master to send event
    Master_Host: 192.168.1.101
    Master_User: testuser
    Master_Port: 3306
    Connect_Retry: 60
    Master_Log_File: mysql-bin.000012
    Read_Master_Log_Pos: 120
    Relay_Log_File: orange-2-relay-bin.000003
    Relay_Log_Pos: 283
    Relay_Master_Log_File: mysql-bin.000012
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    Replicate_Do_DB: orange
    Replicate_Ignore_DB: mysql,test,information_schema,performance_schema
    Replicate_Do_Table:
    Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
    Replicate_Wild_Ignore_Table:
    Last_Errno: 0
    Last_Error:
    Skip_Counter: 0
    Exec_Master_Log_Pos: 120
    Relay_Log_Space: 1320
    Until_Condition: None
    Until_Log_File:
    Until_Log_Pos: 0
    Master_SSL_Allowed: No
    Master_SSL_CA_File:
    Master_SSL_CA_Path:
    Master_SSL_Cert:
    Master_SSL_Cipher:
    Master_SSL_Key:
    Seconds_Behind_Master: 0
    Master_SSL_Verify_Server_Cert: No
    Last_IO_Errno: 0
    Last_IO_Error:
    Last_SQL_Errno: 0
    Last_SQL_Error:
    Replicate_Ignore_Server_Ids:
    Master_Server_Id: 1
    Master_UUID: 773d2987-6821-11e6-b9e0-00163f0004f9
    Master_Info_File: /home/mysql/master.info
    SQL_Delay: 0
    SQL_Remaining_Delay: NULL
    Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
    Master_Retry_Count: 86400
    Master_Bind:
    Last_IO_Error_Timestamp:
    Last_SQL_Error_Timestamp:
    Master_SSL_Crl:
    Master_SSL_Crlpath:
    Retrieved_Gtid_Set:
    Executed_Gtid_Set:
    Auto_Position: 0

     注意查看Slave_IO_Running: Yes  Slave_SQL_Running: Yes 这两项必须为Yes 以及Log_File、Log_Pos要于master状态下的File,Position相同

    如果都是正确的,则说明配置成功!

    以上就是我们给大家整理的关于Linux下MySQL数据库的主从同步复制配置的全部内容,希望能够帮助到你。

    您可能感兴趣的文章:
    • python实现MySQL指定表增量同步数据到clickhouse的脚本
    • MySQL数据库主从同步实战过程详解
    • scrapy数据存储在mysql数据库的两种方式(同步和异步)
    • Mysql主从数据库(Master/Slave)同步配置与常见错误
    • ktl工具实现mysql向mysql同步数据方法
    • 用python简单实现mysql数据同步到ElasticSearch的教程
    • MySQL数据库的主从同步配置与读写分离
    • node.js将MongoDB数据同步到MySQL的步骤
    • PHP使用SWOOLE扩展实现定时同步 MySQL 数据
    • 如何使用Maxwell实时同步mysql数据
    上一篇:mysql分表分库的应用场景和设计方式
    下一篇:Mysql数据库存储过程基本语法讲解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Linux下MySQL数据库的主从同步复制配置 Linux,下,MySQL,数据库,的,