zoukankan      html  css  js  c++  java
  • CentOS 7 MySQL 5.7 主从设置

    条件:

    1:主:Master  192.168.0.107  在配置文件中设置server-id=107

    2:从:Slave    192.168.0.127  在配置文件中设置server-id=127

    1:先检查主从MySQL服务器的UUID是否重复。通过下面的方法获取mysql的data文件夹

    mysql> show variables like 'datadir';
    +---------------+------------------------+
    | Variable_name | Value |
    +---------------+------------------------+
    | datadir | /usr/local/mysql/data/ |
    +---------------+------------------------+

    退出mysql,nano /usr/local/mysql/data/auto.cnf 查看uuid。

    2:设置主库配置文件。

    server-id=107 #设置主服务器的ID(不能和别的服务器重复,建议使用ip的最后一段)
    #innodb_flush_log_at_trx_commit=2 可以配置的值:0/1/2; 0、效率最高,最不安全;1、最安全,但是效率最低;2、安全和效率平衡的取舍,在服务器系统挂掉的情况下会丢失数据;
    #sync_binlog=1 值可设置 1、500、1000;可自己根据测试性能配置
    log-bin=mysql-bin #binlog日志文件名
    binlog-ignore-db=mysql # 表示不同步mysql库
    binlog-ignore-db=information_schema # 表示不同步information_schema库
    binlog-ignore-db=performance_schema
    binlog-ignore-db=sys
    #binlog-do-db=xxxx 这个表示只同步某个库 (如果没有此项,表示同步所有的库)

    3:在主服务器上创建用于主从同步的账户:

    #登录MySQL 
    $ mysql -u root -p    
    mysql> create user 'sync'@'%' identified by 'Sync@0000'; # 5.7要求密码必须含有大小写英文,符号和数字
    mysql> grant replication slave on *.* to 'sync'@'%' identified by 'Sync@0000'; #赋予主从同步权限
    mysql> flush privileges;

    4:重启MySQL,使my.cnf 配置生效;查看主库状态:

    mysql> show master status;
    +------------------+----------+--------------+-------------------------------------------------+-------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+-------------------------------------------------+-------------------+
    | mysql-bin.000002 | 154 | | mysql,information_schema,performance_schema,sys | |
    +------------------+----------+--------------+-------------------------------------------------+-------------------+
    1 row in set (0.00 sec)

    二:配置从库

    1:打开mysql配置文件,加入如下配置

    server-id=127

    #log-bin=mysql-bin #从库提高性能可以不开bin-log日志

    replicate-ignore-db=mysql #配置不需要复制的库mysql
    replicate-ignore-db=information_schema
    replicate-ignore-db=performance_schema
    replicate-ignore-db=sys
    #replicate_do_db=python #标记出需要同步的数据库名,在多从配置时可以按需配置
    #innodb_flush_log_at_trx_commit=2 # 可以配置的值:0/1/2; 0、效率最高,最不安全;1、最安全,但是效率最低;2、安全和效率平衡的取舍,在服务器系统挂掉的情况下会丢失数据;
    #sync_binlog=1000 # 每进行n次事务提交之后,MySQL将binlog_cache中的数据强制写入磁盘。
    #slave_parallel_workers=4 #根据实际情况决定开启多少个线程用于主从复制
    #slave_parallel_type=logical_clock #基于组提交的并行复制方式
    master_info_repository=TABLE
    relay_log_info_repository=TABLE
    #relay_log_recovery=ON

    2: 重启数据库,进入数据库,设置master信息。

    $ service mysqld restart #重启MySQL
    $ mysql -u root -p #登录mysql
    mysql> stop slave; #关闭从库
    mysql> change master to master_host='192.168.0.107', master_user='sync' ,master_password='Sync@0000', master_log_file='mysql-bin.000002' ,master_log_pos=154; #配置主库信息
    mysql> start slave; #开启从库
    mysql> show slave status G;

    Slave_IO_Running,Slave_SQL_Running 都为Yes的时候表示配置成功

    打开Navicat,连接2个数据库,在主库中添加库,添加表,添加数据,看到从库已经同步过来。



  • 相关阅读:
    月食照片
    宾得镜头大全与发展史
    月食照片
    关于镜头系数的疑问
    经验和教训
    常用正则表达式
    12月19日
    部長面談
    周六
    异度空间
  • 原文地址:https://www.cnblogs.com/friendwang1001/p/15484344.html
Copyright © 2011-2022 走看看