mysql数据库主从同步

一、表结构表数据的下载与导入

  1. 下载表结构

    mysqldump -h'主库地址' -u'username' -p --opt -d '数据库名' --set-gtid-purged=OFF > /root/'表结构'.sql

  2. 下载表数据

    mysqldump -h'主库地址' -u'username' -p -t '数据库名' --set-gtid-purged=OFF > /root/'表数据'.sql

    <em>此处增加--set-gtid-purged=OFF是因为mysql在5.6以后,加入了全局事务 ID (GTID) 来强化数据库的主备一致性,故障恢复,以及容错能力。但导致了下载出问题,所以增加这个参数。</em>

  3. 进入本地mysql,创建同名数据库'数据库名'.

    create database '数据库名'

  4. 进入数据库'数据库名'

    use '数据库名'

  5. 导入表结构

    source /root/'表结构'.sql

  6. 导入表数据

    source /root/'表数据'.sql

二、配置文件

  1. 修改mysql配置/etc/my.cnf

    [mysqld]   
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    symbolic-links=0
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    server_id = 175                             #从库ID
    replicate-do-db = '数据库名'                 #设置要同步的库,一定注意,这里的article是要同步的库。
    gtid_mode=on                                #打开gtid同步
    enforce_gtid_consistency= 1
    log-slave-updates=1
    binlog_format = row                         #binlog日志格式
    max_binlog_size = 500M                      #一个日志文件的大小
    expire_logs_days = 10                       #保留10天的日志
    
    
  2. 重启数据库

    systemctl restart mysqld

三、配置主从同步

  1. 从库进入mysql

    mysql -uroot -p

  2. mysql中执行

    set global gtid_purged='28ea2b52-bc80-11e8-9619-7cd30ae45bb4:1-1728981,3b74bb1e-bc80-11e8-8117-6c92bf475963:1-4289931';

    <em>#gtid_purged的值可在主库或第1步中主库导出的文件中查找到</em>
    <em>或在主库中按下面方式查询</em>

    mysql> show global variables like 'gtid_purged';

    +---------------+------------------------------------------------------------------------------------------------+
    | gtid_purged | 28ea2b52-bc80-11e8-9619-7cd30ae45bb4:1-1728981,
    3b74bb1e-bc80-11e8-8117-6c92bf475963:1-4289931 |
    +---------------+------------------------------------------------------------------------------------------------+

  1. 然后

change master to master_host='主库地址',master_user='username',master_password='password',master_port=3306,master_auto_position=1;

start slave;

至此,主从同步设置完成。

查看slave状态

show slave status \G;

其中,以下二值必须为yes

Slave_IO_Running: Yes
Slave_SQL_Running: Yes


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容