window 下的MYSQL主从同步
1,在master上为slave建立用户并给一个replication slave权限
grant replication slave on datename.* to ‘用户名[url=]' @ '[/url]主机地址' identified by “密码"
flush privileges;刷新权限
2,配置my.ini文件
log-bin=mysql-bin #启用二进制日志文件
log-bin="C:/Program Files/MySQL/MySQL Server 5.1/log/updatelog" #设定日志文件名
server-id=1 #设置数据库ID
binlog-do-db=databasename #二进制需要同步的数据库(多个用逗号分隔)
binlog-ignore-db=mysql #避免同步的数据库(多个用逗号分隔)
#配置主从同步
server-id=2 #从服务器ID
master-host=10.3.13.186 #主服务器IP
master-user=gnh1 #主服务器登陆名
master-password=112233 #主服务器登陆密码
master-port=3306 #主服务器断口
master-connect-retry=60 #断点从新连接时间(秒)
replicate-ignore-db=mysql #屏蔽对MYSQL库的同步
replicate-do-db=wuliu #二进制需要同步的数据库
3,在从库远程导入需要同步的数据库
mysqldump -u root -p -h 10.3.13.186 databasename>c:\databasename.sql #远程备份表
create database databasename #创建表
mysql -u root -p -f -D databasename<c:\databasename #导入表
4,在从数据库上slave stop 停掉slave服务
在主数据库上show master status查看主服务状态
在从数据库上change master to master_host='主数据库IP',master_user='username',master_password='password',master_log_file='查询到的二进制文件',master_log_pos='查询到的position'
在从数据库上slave start 重启slave 服务
show slave status\g 查看同步结果
Slave_IO_Running=YES Slave_SQL_Running=YES 同步成功
如果Slave_IO_Running=NO
1,检查错误日志,查看连接的主机,用户名,权限是否正确
2,如果包太大,show VARIABLES like '%max_allowed_packet%';查看包的最大限制并做调整
如果Slave_SQL_Running=NO
1,检查是否从库有数据更新或写入操作
2,slave进程重启,事务回滚造成。先slave stop掉slave进程。set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; 再slave start 重启进程。