mySQL的主从数据库同步设置
1.打开服务项
找到安装位置
然后复制一份
2.修改从数据库的mini文件
可能会找不到,这是因为如果使用了默认安装,文件会存放在隐藏文件夹下,需要自己设置文件显示隐藏文件的设置
然后在programData文件夹下找到mysql文件夹,复制一份
修改端口号:
修改地址从数据库的地址
修改从数据库的数据存放地址
3.安装从数据库
进入从数据库的bin目录,打开命令窗口
输入命令:
mysqld install mysql-back --defaults-file= "C:\ProgramData\MySQL\MySQL Server 5.7-back\my.ini"
后面指定的是my.ini的文件地址,根据自己的进行修改
安装成功
在服务中进行刷新,查看,这里只是数据的安装,并没有启动,后续还需要进行配置,最后再启动
4.修改主数据库和从数据库的my.ini进行关联
主数据库的修改
# 开启日志
log-bin=mysql-bin
查看主数据库的server-id,从数据库不要和主数据库配置相同
设置想要同步的数据库和屏蔽系统数据库
# 设置需要同步的数据库
binlog-do-db=temporary
# 屏蔽系统库同步
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
从数据库修改
server-id=2
# 开启日志
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.重启主从数据库
用软件连接从数据库
可以看到从数据库中已经有了数据,
此时数据是不同步的,因为没有权限,需要在主数据库中进行授权并进行设置
6.授权设置
GRANT REPLICATION SLAVE ON *.* TO '新建账户名'@'%'IDENTIFIED BY '新建的账户名(作为密码使用)';
刷新FLUSH PRIVILEGES;
在user表中就会有一个out_right授权账户
7.开启同步
上面的操作只是让从数据库和主数据库有了相同的数据结构,但是进行数据表的插入和删除操作时数据是不同步的,下面进行数据同步的设置
7.1 查看主数据库数据状态
在主数据库下运行show master status
File 和Position的值需要在从数据库的设置中使用
7.2 从数据库设置
先停止同步
stop SLAVE;
从数据库运行
连上主数据库准备同步
CHANGE MASTER TO
# 主数据库地址
MASTER_HOST = 'localhost',
#授权的用户名和密码
MASTER_USER = 'out_right',
MASTER_PASSWORD = 'out_right',
#刚才查询的主数据库信息
MASTER_log_file = 'mysql-bin.000001',
MASTER_log_pos = 446;
启动同步:
START SLAVE;
查看同步状态
show SLAVE STATUS;
6.3 不同为yes解决
因为从数据库中的文件auto.cnf是直接赋值主数据库的,所以存在冲突,删除掉从数据库的auto.cnf文件,并重新启动从数据库
重启服务
在进行状态查询:
stop slave;
start slave;
show slave status;