ifuleyou 发表于 2018-10-8 11:46:48

mysql数据库级联同步配置

  mysql数据库级联同步配置步骤,本文以一台mysql数据库多实例3306、3307和3309为例进行配置,3306为主库,3307为从库,3309为子从库(多台单实例与一台多实例配置是一样的)

  一.my.cnf文件配置
  1.三个数据库实例修改my.cnf配置文件,主库3306和从库3307要打开log-bin,三个server-id不能一样
  # egrep"log-bin|server-id" /data/{3306,3307,3309}/my.cnf
  /data/3306/my.cnf:log-bin =/data/3306/mysql-bin
  /data/3306/my.cnf:server-id = 1
  /data/3307/my.cnf:log-bin =/data/3307/mysql-bin
  /data/3307/my.cnf:server-id = 3
  /data/3307/my.cnf:#log-bin =/data/3309/mysql-bin
  /data/3307/my.cnf:server-id = 5
  2.从库3307的my.cnf文件的模块里添加一条内容
  log-slave-updates
  3.重启数据库3306、3307和3309
  #/data/3306/mysql stop
  #/data/3306/mysql start
  # /data/3307/mysqlstop
  # /data/3307/mysqlstart
  # /data/3309/mysqlstop
  # /data/3309/mysqlstart
  4.进入主数据库3306,查询log_bin是否打开,server_id是多少,3307进行同样操作
  # mysql -uroot-p123456 -S /data/3306/mysql.sock
  mysql> show variables like"log_bin";
  +---------------+-------+
  | Variable_name | Value |
  +---------------+-------+
  | log_bin       | ON   |
  +---------------+-------+
  1 row in set (0.01 sec)
  mysql> show variables like"server_id";
  +---------------+-------+
  | Variable_name | Value |
  +---------------+-------+
  | server_id   | 1    |
  +---------------+-------+
  1 row in set (0.00 sec)
  5.在主库3306上创建一个专门用来同步数据库的用户

  mysql> grant replicationslave on *.* to rep@'10.0.0.%'>  ###*.*代表所有库和所有表
  mysql> flush privileges;
  mysql> select user,hostmysql.user;
  mysql> show grants forrep@'10.0.0.%';
  二.主库3306备份数据,导入从库3307
  1.在主库3306上备份数据
  # mysqldump-uroot -p123456 -S /data/3306/mysql.sock -A --events -B -x --master-data=1|gzip>/opt/$(date +%F).sql.gz
  -A:所有的库    -x:全局锁表
  2.将数据导入从库3307
  # ls /opt
  2017-07-03.sql.gz
  # cd /opt
  # gzip -d2017-07-03.sql.gz
  # ls
  2017-07-03.sql
  # mysql -uroot-p123456 -S /data/3307/mysql.sock
页: [1]
查看完整版本: mysql数据库级联同步配置