01月11, 2018

Centos 7下配置MySQL Server5.7主从同步

Step 1 — Master数据库服务器配置

  • [root@server155 ~]# nano /etc/my.cnf
  • GNU nano 2.0.9 File: /etc/my.cnf
  • # For advice on how to change settings please see
  • # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
  • [mysqld]
  • #
  • # Remove leading # and set to the amount of RAM for the most important data
  • # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
  • # innodb_buffer_pool_size = 128M
  • #
  • # Remove leading # to turn on a very important data integrity option: logging
  • # changes to the binary log between backups.
  • # log_bin
  • log-bin=mysql-bin
  • server-id=155
  • binlog-ignore-db=information_schema
  • #binlog-ignore-db=sys
  • binlog-ignore-db=performance_schema
  • binlog-ignore-db=mysql
  • binlog-do-db=daguanrendb
  • #
  • # Remove leading # to set options mainly useful for reporting servers.
  • # The server defaults are faster for transactions and fast SELECTs.
  • # Adjust sizes as needed, experiment to find the optimal values.
  • # join_buffer_size = 128M
  • # sort_buffer_size = 2M
  • # read_rnd_buffer_size = 2M
  • datadir=/var/lib/mysql
  • socket=/var/lib/mysql/mysql.sock
  • # Disabling symbolic-links is recommended to prevent assorted security risks
  • symbolic-links=0
  • log-error=/var/log/mysqld.log
  • pid-file=/var/run/mysqld/mysqld.pid
shell

这里的server-id用于标识唯一的数据库,这里设置为155,在设置从库的时候就需要设置为其他值。

binlog-ignore-db:表示同步的时候ignore的数据库

binlog-do-db:指定需要同步的数据库

Step 2 — Slave数据库服务器配置

  • [root@server156 ~]# nano /etc/my.cnf
  • GNU nano 2.0.9 File: /etc/my.cnf
  • # For advice on how to change settings please see
  • # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
  • [mysqld]
  • #
  • # Remove leading # and set to the amount of RAM for the most important data
  • # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
  • # innodb_buffer_pool_size = 128M
  • #
  • # Remove leading # to turn on a very important data integrity option: logging
  • # changes to the binary log between backups.
  • # log_bin
  • #
  • log-bin=mysql-bin
  • server-id=156
  • binlog-ignore-db=information_schema
  • #binlog-ignore-db=sys
  • binlog-ignore-db=performance_schema
  • binlog-ignore-db=mysql
  • replicate-do-db=daguanrendb
  • replicate-ignore-db=mysql
  • log-slave-updates
  • slave-skip-errors=all
  • slave-net-timeout=60
routeros

Step 3 — 重启主从数据库

  • [root@server155 ~]# service mysqld restart
  • [root@server156 ~]# service mysqld restart

Step 4 — 进入主数据库,赋予从库权限

  • [root@server155 ~]# mysql -u root -p

赋予从库权限帐号,允许用户在主库上读取日志,赋予10.0.1.156也就是Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权限才可以。

  • mysql> GRANT FILE ON *.* TO 'root'@'10.0.1.156' IDENTIFIED BY 'Daguanren.cc@2017';
  • mysql> GRANT REPLICATION SLAVE ON *.* TO 'root'@'10.0.1.156' IDENTIFIED BY 'Daguanren.cc@2017';
  • mysql> flush privileges;

Step 5 — 显示主库信息

  • mysql> show master status;

alt

这里的 File 、Position 是在配置Salve的时候要使用到的,Binlog_Do_DB表示要同步的数据库,Binlog_Ignore_DB 表示Ignore的数据库,这些都是在配置的时候进行指定的。

Step 6 — 进入从数据库,配置master

  • [root@server156 ~]# mysql -u root -p
  • mysql> stop slave;
  • mysql> change master to master_host='10.0.1.155',master_user='root',master_password='Daguanren.cc@2017',master_log_file='mysql-bin.000003', master_log_pos=725;
  • mysql> start slave;

在这里指定Master的信息,master_log_file是在配置Master的时候的File选项, master_log_pos是在配置Master的Position 选项,这里要进行对应。

  • mysql> show slave status;

Step 7 — 测试

创建数据库:

  • mysql> CREATE DATABASE IF NOT EXISTS iso default charset utf8 COLLATE utf8_general_ci;

在主服务器中:

  • mysql> use daguanrendb;

创建表

  • mysql> CREATE TABLE test3
  • (
  • id int
  • );
gams

插入数据

  • mysql> INSERT INTO test3 VALUES ('11');

查询

  • mysql> select * from test3;
  • +------+
  • | id |
  • +------+
  • | 11 |
  • +------+
  • 1 row in set (0.00 sec)
asciidoc

在从服务器中:

  • mysql> use daguanrendb;
  • mysql> show tables;
  • +---------------------+
  • | Tables_in_daguanrendb |
  • +---------------------+
  • | test3 |
  • +---------------------+
  • 1 row in set (0.00 sec)
asciidoc
  • mysql> select * from test3;
  • +------+
  • | id |
  • +------+
  • | 11 |
  • +------+
  • 1 row in set (0.00 sec)
asciidoc

安装MySQL 可参考:Centos 7安装MySQL Server5.7

本文链接:https://www.daguanren.cc/post/sync_master_slave_mysql.html

-- EOF --

Comments