美文网首页
mysql 主从部署记录

mysql 主从部署记录

作者: 梅村_9643 | 来源:发表于2021-05-19 11:41 被阅读0次

    数据库版本5.7.25

    主数据库:192.168.12.243
    从数据库: 192.168.12.244

    mysql的安装

    可以参考:https://www.jianshu.com/p/891d02f3939a

    =========maser服务器配置=========

    1 my.cnf 主服务器配置

    centos 7 一般在/etc/my.cnf

    ==========数据库集群主服务器配置!!!mysqld配置下边==============
    [mysqld]
    #server-id 必须唯一
    server-id=243
    ##启动MySQ二进制日志系统 存储地址 
    log_bin=/data/mysql/mysql-bin
    # 需要同步的数据库
    binlog_do_db=database_name
    #确保binlog日志写入后与硬盘同步
    sync_binlog = 1
    #跳过现有的采用checksum的事件,mysql5.6.5以后的版本中binlog_checksum=crc32,而低版本都是binlog_checksum=none
    #bin-log日志文件格式,设置为MIXED可以防止主键重复。
     binlog_format = mixed
    

    2 导出master中的数据库,然后再导入到slave数据,导出前先锁定数据库,保证双方的数据在同步前一致

     mysql> flush tables with read lock; 
    

    导出master数据库中多余的huanqiu库(master数据库的root用户登陆密码:123456)

    mysqldump -uroot -p    database_name > /data/database_name.sql
    

    3 设置数据库同步权限

    mysql> grant replication slave,replication client on *.* to slave@'192.168.12.244' identified by "password";
    mysql> flush privileges;
    

    温馨提示:
    权限查看方式

    mysql> show grants;
    mysql> show grants for slave@'192.168.12.244';
    

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

    mysql> show master status;
    +------------------+----------+--------------+------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql-bin.000007 |      120 | database_name      | mysql            |                   |
    +------------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    

    ========= slave服务器配置=========

    1 my.cnf 主服务器配置

    1==========数据库主从配置从服务器配置mysqld节点下===============
    #设置从服务器id,必须于主服务器不同
    server-id=244
    #启动MySQ二进制日志系统
    log-bin=/data/mysql/mysql-bin
    #需要同步的数据库名。如果不指明同步哪些库,就去掉这行,表示所有库的同步(除了ignore忽略的库)。
    replicate-do-db=database_name
    #跳过所有的错误错误,继续执行复制操作
    slave-skip-errors = all
    
    2在slave数据库中导入从master传过来的数据。
    mysql> CREATE DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;   #先创建一个huanqiu空库,否则下面导入数据时会报错说此库不存在。
    mysql> use database_name;
    mysql> source /opt/database_name.sql;   #导入master中多余的数据。
    
    3配置主从同步指令
    mysql> stop slave;   #执行同步前,要先关闭slave
    mysql> change  master to master_host='192.168.12.243',master_user='slave',master_password='password',master_log_file='mysql-bin.000007',master_log_pos=120;
         
    mysql> start slave;
    mysql> show slave status \G;
    .......
    *************************** 1. row ***************************
                   Slave_IO_State: Waiting for master to send event
                      Master_Host: 182.148.15.238
                      Master_User: slave
                      Master_Port: 3306
                    Connect_Retry: 60
                  Master_Log_File: mysql-bin.000007
              Read_Master_Log_Pos: 120
                   Relay_Log_File: mysql-relay-bin.000002
                    Relay_Log_Pos: 279
            Relay_Master_Log_File: mysql-bin.000007
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
                  Replicate_Do_DB: huanqiu
              Replicate_Ignore_DB: mysql
               .............
            Seconds_Behind_Master: 0
    

    如上,当IO和SQL线程的状态均为Yes,则表示主从已实现同步了!

    至此,主从同步环境已经实现!

    主从配置另外一种方法

    主服务器my.cnf配置

    # ===================设置主从备份主服务器配置部分===================
    [mysqld]
    #server-id 必须唯一
    server-id=150
    ##启动MySQ二进制日志系统 存储地址
    log_bin=/opt/mysql-8.0.27/data/mysql-bin
    # 需要同步的数据库
    #binlog_do_db=szmachine
    #binlog_do_db=jianzhengtong
    # 配置需要忽略的库,其他库就自动同步了!!!
    binlog-ignore-db=information_schema
    binlog-ignore-db=mysql
    binlog-ignore-db=performance_schema
    #确保binlog日志写入后与硬盘同步
    sync_binlog = 1
    #跳过现有的采用checksum的事件,mysql5.6.5以后的版本中binlog_checksum=crc32,而低版本都是binlog_checksum=none
    #bin-log日志文件格式,设置为MIXED可以防止主键重复。
    binlog_format = mixed
    

    从服务器配置

    [mysqld]
    #==============从服务器配置项==================
    #设置从服务器id,必须于主服务器不同
    server-id=151
    #启动MySQ二进制日志系统
    log-bin=/opt/mysql-8.0.27/data/mysql-bin
    #需要同步的数据库名。如果不指明同步哪些库,就去掉这行,表示所有库的同步(除了ignore忽略的库)。
    #replicate-do-db=szmachine
    #replicate-do-db=jianzhengtong
    #配置忽略的数据库
    replicate-ignore-db=information_schema
    replicate-ignore-db=mysql
    replicate-ignore-db=performance_schema
    #跳过所有的错误错误,继续执行复制操作
    slave-skip-errors = all
    
    

    相关文章

      网友评论

          本文标题:mysql 主从部署记录

          本文链接:https://www.haomeiwen.com/subject/hyaujltx.html