发新话题
打印

window 下的MYSQL主从同步

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 重启进程。

TOP

发新话题
最近访问的版块