读书人

(转)mysql 主从数据库配备(windows)

发布时间: 2012-07-23 09:42:19 作者: rapoo

(转)mysql 主从数据库配置(windows)

系统环境:Windows 2003
?????? MYSQL版本 5.1.38
1:主服务器main
IP地址:192.168.1.101
2:从服务器companion
IP地址:192.168.1.102

1、首先停止主服务器Mysql服务,备份数据库到从服务器确保主从服务器数据库数据一样。后启动MYSQL服务。


2、在主服务器Mysql数据库上创建一个备份用户
命令如下:

do-db=mytest?#需要同步的数据库??
  • binlog-ignore-db=mysql?#不需要同步的数据库??

    ?

    6、重启从服务器B。至此所有设置全部完成。更新A中的数据,B中也会立刻进行同步更新。

    ?

    检测是否同步与排错可用以下命令查看:
    1、在slave从服务器B上 输入:show slave status\G
    主要查看:
    Slave_IO_Running: Yes?(#注:如果这个为NO,可重新修改my.ini 中相关slave的配置信息,重新启动查看 slave的状态还是显示未修改的数据,应为 第一次是读取my.ini,之后就会在mysql/下生成一个master.info 的文件,因此第二次就不会读取my.ini 的内容,而是读取master.info中的内容,为此要想使重新修改的my.ini生效的话,删除master.info文件 ,重起mysql既可解决。如果不能解决则可能是彼此之间的通讯问题或其它)
    Slave_SQL_Running: Yes?(#注:如果这里为NO,很有可能是因为你的A库和B库的数据库不一致造成的。停止主从服务器MYSQL服务后删除A库中所有log-bin.log文件和B库所有的relay_log文件 并重启AB服务器即可解决)
    Seconds_Behind_Master是否为0,0就是已经同步

    2、在master主服务器A上输入show processlist\G
    mysql> show processlist\G
    *************************** 1. row ***************************
    ? ???Id: 2
    ? ?User: backup
    ? ?Host: 192.168.1.102:3341
    ? ???db: NULL
    Command: Binlog Dump
    ? ?Time: 849
    ??State: Has sent all binlog to slave; waiting for binlog to be updated
    ? ?Info: NULL
    *************************** 2. row ***************************

    如果出现Command: Binlog Dump,则说明配置成功.

    # stop slave? ? #停止同步
    # start slave? ? #开始同步,从日志终止的位置开始更新。
    # SET SQL_LOG_BIN=0|1 #主机端运行,需要super权限,用来开停日志,随意开停,会造成主机从机数据不一致,造成错误
    # SET GLOBAL SQL_SLAVE_SKIP_COUNTER=n # 客户端运行,用来跳过几个事件,只有当同步进程出现错误而停止的时候才可以执行。
    # RESET MASTER #主机端运行,清除所有的日志,这条命令就是原来的FLUSH MASTER
    # RESET SLAVE? ?#从机运行,清除日志同步位置标志,并重新生成master.info
    虽然重新生成了master.info,但是并不起用,最好,将从机的mysql进程重启一下,
    # LOAD TABLE tblname FROM MASTER #从机运行,从主机端重读指定的表的数据,每次只能读取一个,受timeout时间限制,需要调整timeout时间。执行这个命令需要同步账号有 reload和super权限。以及对相应的库有select权限。如果表比较大,要增加net_read_timeout 和net_write_timeout的值
    # LOAD DATA FROM MASTER #从机执行,从主机端重新读入所有的数据。执行这个命令需要同步账号有reload和super权限。以及对相应的库有select权限。如果表比较大,要增加net_read_timeout 和net_write_timeout的值
    # CHANGE MASTER TO master_def_list #在线改变一些主机设置,多个用逗号间隔,比如
    CHANGE MASTER TO
    MASTER_HOST='master2.mycompany.com',
    MASTER_USER='replication',
    MASTER_PASSWORD='bigs3cret'
    # MASTER_POS_WAIT()#从机运行
    # SHOW MASTER STATUS#主机运行,看日志导出信息
    # SHOW SLAVE HOSTS#主机运行,看连入的从机的情况。
    # SHOW SLAVE STATUS(slave)
    # SHOW MASTER LOGS(master)
    # SHOW BINLOG EVENTS [ IN 'logname' ] [ FROM pos ] [ LIMIT [offset,] rows ]
    # PURGE [MASTER] LOGS TO 'logname' ; PURGE [MASTER] LOGS BEFORE 'date'

    参考检测方法:
    在A执行
    mysql> show master status\G
    *************************** 1. row ***************************
    ? ?? ?? ?? ?File: log-bin.000002
    ? ?? ???Position: 106
    ? ? Binlog_Do_DB: mytest
    Binlog_Ignore_DB: mysql,test
    1 row in set (0.00 sec)
    在B执行
    mysql> show slave status\G
    *************************** 1. row ***************************
    ? ?? ?? ?? ? Slave_IO_State: Waiting for master to send event
    ? ?? ?? ?? ?? ? Master_Host: 192.168.1.101
    ? ?? ?? ?? ?? ? Master_User: backup
    ? ?? ?? ?? ?? ? Master_Port: 3306
    ? ?? ?? ?? ???Connect_Retry: 60
    ? ?? ?? ?? ?Master_Log_File: log-bin.000002
    ? ?? ???Read_Master_Log_Pos: 106
    ? ?? ?? ?? ? Relay_Log_File: weige-relay-bin.000005
    ? ?? ?? ?? ???Relay_Log_Pos: 659
    ? ?? ?Relay_Master_Log_File: log-bin.000002
    ? ?? ?? ???Slave_IO_Running: Yes
    ? ?? ?? ? Slave_SQL_Running: Yes
    ? ?? ?? ?? ?Replicate_Do_DB: mytest
    ? ?? ???Replicate_Ignore_DB: mysql,test
    ? ?? ?? ?Replicate_Do_Table:
    ? ???Replicate_Ignore_Table:
    ? ? Replicate_Wild_Do_Table:
    Replicate_Wild_Ignore_Table:
    ? ?? ?? ?? ?? ???Last_Errno: 0
    ? ?? ?? ?? ?? ???Last_Error:
    ? ?? ?? ?? ?? ?Skip_Counter: 0
    ? ?? ???Exec_Master_Log_Pos: 524
    ? ?? ?? ?? ?Relay_Log_Space: 659
    ? ?? ?? ?? ?Until_Condition: None
    ? ?? ?? ?? ? Until_Log_File:
    ? ?? ?? ?? ???Until_Log_Pos: 0
    ? ?? ?? ?Master_SSL_Allowed: No
    ? ?? ?? ?Master_SSL_CA_File:
    ? ?? ?? ?Master_SSL_CA_Path:
    ? ?? ?? ?? ?Master_SSL_Cert:
    ? ?? ?? ? Master_SSL_Cipher:
    ? ?? ?? ?? ? Master_SSL_Key:
    ? ?? ?Seconds_Behind_Master: 0
    1 row in set (0.00 sec)

  • 读书人网 >其他数据库

    热点推荐