mysql数据库主从同步非交互式配置步骤,本文以一台mysql数据库多实例33063308为例进行配置,3306为主库,3308为从库(多台单实例与一台多实例配置是一样的)

mysql数据库主从同步(非交互式)_第1张图片

 

一.my.cnf文件配置

1.修改my.cnf配置文件,主数据库3306要打开log-binserver-id不能一样

[root@mysql ~]# egrep"log-bin|server-id" /data/{3306,3308}/my.cnf

/data/3306/my.cnf:log-bin =/data/3306/mysql-bin

/data/3306/my.cnf:server-id = 1

/data/3308/my.cnf:#log-bin =/data/3308/mysql-bin

/data/3308/my.cnf:server-id = 3

2.重启数据库33063308

[root@mysql ~]# /data/3306/mysqlstop

[root@mysql ~]#/data/3306/mysql start

[root@mysql ~]# /data/3308/mysqlstop 

[root@mysql ~]# /data/3308/mysqlstart

3.进入主数据库3306,查询log_bin是否打开,server_id是多少

[root@mysql ~]# 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)

4.创建一个专门用来同步数据库的用户

mysql> grant replicationslave on *.* to rep@'10.0.0.%' identified by '123456';

###*.*代表所有库和所有表

mysql> flush privileges;

mysql> select user,hostmysql.user;

mysql> show grants forrep@'10.0.0.%';

 

二.主库3306备份数据,导入从库3308

1.在主库3306上备份数据

[root@mysql ~]# mysqldump-uroot -p123456 -S /data/3306/mysql.sock -A --events -B -x --master-data=1|gzip>/opt/$(date +%F).sql.gz

-A:所有的库    -x:全局锁表 

2.将数据导入从库3308

 

[root@mysql ~]# ls /opt

2017-07-03.sql.gz

[root@mysql ~]# cd /opt

[root@mysql opt]# gzip -d2017-07-03.sql.gz

[root@mysql opt]# ls

2017-07-03.sql

[root@mysql opt]# mysql -uroot-p123456 -S /data/3308/mysql.sock <2017-07-03.sql

 

3.从库3308连接主库3306

[root@mysql opt]# mysql -uroot-p123456 -S /data/3308/mysql.sock <

CHANGE MASTER TO 

MASTER_HOST='10.0.0.20',

MASTER_PORT=3306,

MASTER_USER='rep',

MASTER_PASSWORD='123456';

EOF

[root@mysql opt]# mysql -uroot-p123456 -S /data/3308/mysql.sock -e "start slave"

 

四.测试

在主库3306上创建数据库,然后再登陆3308查看是否正常同步,经测试已正常同步^_^