mySQL的主从数据库同步设置

1.打开服务项

mysql查主从关系 mysql主从表关联_mysql

mysql查主从关系 mysql主从表关联_主数据_02


找到安装位置

mysql查主从关系 mysql主从表关联_数据库_03


然后复制一份

mysql查主从关系 mysql主从表关联_主数据_04

2.修改从数据库的mini文件

可能会找不到,这是因为如果使用了默认安装,文件会存放在隐藏文件夹下,需要自己设置文件显示隐藏文件的设置

然后在programData文件夹下找到mysql文件夹,复制一份

mysql查主从关系 mysql主从表关联_数据库_05


修改端口号:

mysql查主从关系 mysql主从表关联_数据库_06


mysql查主从关系 mysql主从表关联_数据库_07

修改地址从数据库的地址

mysql查主从关系 mysql主从表关联_主数据_08


修改从数据库的数据存放地址

mysql查主从关系 mysql主从表关联_主数据_09

3.安装从数据库

进入从数据库的bin目录,打开命令窗口

输入命令:

mysqld install mysql-back --defaults-file= "C:\ProgramData\MySQL\MySQL Server 5.7-back\my.ini" 后面指定的是my.ini的文件地址,根据自己的进行修改

安装成功

mysql查主从关系 mysql主从表关联_数据库_10


在服务中进行刷新,查看,这里只是数据的安装,并没有启动,后续还需要进行配置,最后再启动

mysql查主从关系 mysql主从表关联_mysql查主从关系_11

4.修改主数据库和从数据库的my.ini进行关联

主数据库的修改

# 开启日志
log-bin=mysql-bin

查看主数据库的server-id,从数据库不要和主数据库配置相同

mysql查主从关系 mysql主从表关联_数据库_12


设置想要同步的数据库和屏蔽系统数据库

# 设置需要同步的数据库
binlog-do-db=temporary

# 屏蔽系统库同步
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema

从数据库修改

server-id=2

mysql查主从关系 mysql主从表关联_数据库_13

# 开启日志
log-bin=mysql-bin

# 设置需要同步的数据库
replicate_wild_do_table=temporary.%

# 屏蔽系统库同步
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=information_schema.%
replicate_wild_ignore_table=performance_schema.%

5.重启主从数据库

mysql查主从关系 mysql主从表关联_数据库_14


用软件连接从数据库

mysql查主从关系 mysql主从表关联_mysql_15


可以看到从数据库中已经有了数据,

mysql查主从关系 mysql主从表关联_mysql_16


此时数据是不同步的,因为没有权限,需要在主数据库中进行授权并进行设置

6.授权设置

GRANT REPLICATION SLAVE ON *.* TO '新建账户名'@'%'IDENTIFIED BY '新建的账户名(作为密码使用)'; 刷新
FLUSH PRIVILEGES;

mysql查主从关系 mysql主从表关联_主数据_17


在user表中就会有一个out_right授权账户

mysql查主从关系 mysql主从表关联_mysql查主从关系_18

7.开启同步

上面的操作只是让从数据库和主数据库有了相同的数据结构,但是进行数据表的插入和删除操作时数据是不同步的,下面进行数据同步的设置

7.1 查看主数据库数据状态

在主数据库下运行
show master status File 和Position的值需要在从数据库的设置中使用

mysql查主从关系 mysql主从表关联_mysql_19

7.2 从数据库设置

先停止同步

stop SLAVE;

mysql查主从关系 mysql主从表关联_主数据_20


从数据库运行

连上主数据库准备同步

CHANGE MASTER TO
# 主数据库地址
MASTER_HOST = 'localhost',
#授权的用户名和密码
MASTER_USER = 'out_right',
MASTER_PASSWORD = 'out_right',
#刚才查询的主数据库信息
MASTER_log_file = 'mysql-bin.000001',
MASTER_log_pos = 446;

mysql查主从关系 mysql主从表关联_数据库_21

启动同步:

START SLAVE;

mysql查主从关系 mysql主从表关联_数据库_22


查看同步状态

show SLAVE STATUS;

mysql查主从关系 mysql主从表关联_mysql_23

6.3 不同为yes解决

因为从数据库中的文件auto.cnf是直接赋值主数据库的,所以存在冲突,删除掉从数据库的auto.cnf文件,并重新启动从数据库

mysql查主从关系 mysql主从表关联_mysql查主从关系_24

mysql查主从关系 mysql主从表关联_mysql_25


重启服务

mysql查主从关系 mysql主从表关联_mysql查主从关系_26


在进行状态查询:

stop slave;start slave;

show slave status;

mysql查主从关系 mysql主从表关联_mysql查主从关系_27