mysql 5.7 主从同步配置(windows)

来源:互联网 发布:淘宝消保30元的条件 编辑:程序博客网 时间:2024/05/18 02:19

今天在做mysql的主从同步的时候碰到了一些问题,在这里整理一下。

首先趁着五一假期,主库停机,复制data至从库(时间比较长)。

1、配置主库,主要是my.ini增加如下选项:

# Binary Logging.# log-binlog-bin="D:/mysql/mysql/log/mysql-bin/"# 使binlog在每N次binlog写入后与硬盘 同步sync-binlog=1# 1天时间自动清理二进制日志expire_logs_days=1# 需要同步的数据库 binlog-do-db=database1binlog-do-db=database2binlog-do-db=database3# 不需要同步的数据库binlog-ignore-db=mysql   binlog-ignore-db=information_schema binlog-ignore-db=performance_schemabinlog-ignore-db=database5binlog-ignore-db=database6# Error Logging.log-error="data.err"# Server Id,每个库都必须独立的分配id.server-id=2port=6666

从库配置:

replicate_wild_do_table=database1.%replicate_wild_do_table=database2.%replicate_wild_do_table=database3.%replicate_wild_ignore_table=mysql.%replicate_wild_ignore_table=information_schema.%replicate_wild_ignore_table=performance_schema.%replicate_wild_ignore_table=database5.%replicate_wild_ignore_table=database6.%# 二进制日志自动删除的天数expire_logs_days=1# Server Id.server-id=5port=6667

配置文件的选项如上,其余则须通过命令行的形式来进行…,(抱怨:oracle就是让mysql越来越难用)
接下来时命令行的内容:

主库:

#进入到mysql的bin目录下,执行#重启主数据库,然后在主数据库中建立一个备份账户mysql -h localhost -u root -p输入密码进入mysql mysql>show databases;mysql>grant replication slave on *.* to 'slave_username'@'192.168.1.12' identified by 'slave_password' ;mysql>flush privileges;#显示主服务器的状态信息,并且找到File 和 Position 的值记录下来;mysql>show master status \G;#记下File 和 Position,从库配置要用    

从库:

#进入到mysql的bin目录下,执行#重启从数据库,设置登录主数据库的账号和密码等信息,然后启动slavemysql>change master to master_host='192.168.1.2',master_user='slave_username',master_password='slave_password', master_log_file='.000001',master_log_pos=0; mysql>start slave;#此处加\G的意思是格式化输出,否则输出乱七八糟,看不清楚mysql>show slave status \G;#如果出现: Slave_IO_Running: Yes Slave_SQL_Running: Yes以上两项都为Yes,那说明没问题了

问题汇总:

1.问题:unknown variable ‘master-host=192.168.8.1’
解决办法:Mysql版本从5.1.7以后开始就不支持“master-host”类似的参数,需要在mysql控制台中使用change master to 命令添加相关信息,而且中横杠’-‘改成了下横杠’_’…

2.问题:mysqlbinlog: [ERROR] unknown option ‘–no-beep’
解决办法:命令后添加 –no-defualts选项

3.问题:Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
解决办法:因为copy的时候讲auto.cnf一起copy过来了,就产生了主库和从库UUID重复的问题,删掉auto.cnf,重新启动

4.问题:Got fatal error 1236 from master when reading data from binary log: ‘binlog truncated in the middle of event; consider out of disk space on master; the first event ” at 120, the last event read from ‘D:\mysql\mysql\log\mysql-bin.000001’ at 123, the last byte read from ‘xxx.000001’ at 139.’, Error_code: 1236
解决办法:在从库重新指向到主库下一个可用的binlog file 并且从binlog file初始化的位置开始,执行mysql命令

#此命令一定不要加文件路径,直接写文件名,否则继续报错mysql> stop slave;mysql> change master to master_log_file='.000001',master_log_pos=0;mysql> start slave;mysql> show slave status;

5.问题:cann’t connect to mysql server 10060,远程无法访问
解决办法:给用户授权远程登录权限
mysql> grant all privileges on . to ‘username’@’%’ identified by ‘password’ with grant option;

6.问题: The innodb_system data file ‘ibdata1’ must be writable
解决办法:赋予ibdata1写入权限

1 0