设为首页收藏本站
查看: 109|回复: 0

[PHP] win2003mysql单向同步配置步骤[已测]

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34274
主题
17031
UID
1347
M币
67
贡献
17176

  • 发表于 2018-7-14 22:29:00 | 显示全部楼层 |阅读模式
    为了服务器安全特将mysql同步了下,由于时间长了经常忘记,特以此整理下了,方便经常支持脚本之家的朋友。

    前提条件,两台服务器都安装了mysql相同的版本,数据库名也一样,最好数据都是尽量的差不多。
    mysql服务器端 192.168.0.1:

    新建一个备用账号,只用来复制数据的
    用户名:backup
    密码:wwwjb51net
    GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO backup@'192.168.0.2' IDENTIFIED BY 'wwwjb51net';
    新建用户后需要客户端来检测在客户端是否能连接服务器端。
    在[mysqld]下面添加
    代码如下:
    server-id=10
    log-bin=mysql-bin

    mysql客户端 192.168.0.2:

    检测方法在192.168.0.1
    mysql -h 192.168.0.1 -u root -p 如何无法连接请参考
    代码如下:
    server-id=11
    master-host=192.168.0.1
    master-user=backup
    master-password=wwwjb51net
    replicate-do-db=jb51 //jb51为要备份的数据库名
    测试方法:就是后台中添加数据,然后在客户端所在的网站后台看数据是否都有。
    不过经过测试一般情况下不会一次成功都会有些问题,下面的文章你一定要看。基本上就可以了
    接着就是查看同步情况
    查看Slave状态:
    mysql> show slave status\G
    Slave_IO_Running: Yes
    Slave_SQL_Running: No
    Last_Errno: 1062
    ....
    Seconds_Behind_Master:NULL
    原因:
    1.程序可能在slave上进行了写操作
    2.也可能是slave机器重起后,事务回滚造成的.
    解决办法I:
    1.首先停掉Slave服务:slave stop
    2.到主服务器上查看主机状态:
    记录File和Position对应的值。
    mysql> show master status;
    +------------------+-----------+--------------+------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+-----------+--------------+------------------+
    | mysql-bin.000020 | 135617781 | | |
    +------------------+-----------+--------------+------------------+
    1 row in set (0.00 sec)
    3.到slave服务器上执行手动同步:
    代码如下:
    mysql> change master to
    > master_host='master_ip',
    > master_user='user',
    > master_password='pwd',
    > master_port=3307,
    > master_log_file='mysql-bin.000020',
    > master_log_pos=135617781;
    1 row in set (0.00 sec)
    mysql> slave start;
    1 row in set (0.00 sec)
    再次查看slave状态发现:
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    ...
    Seconds_Behind_Master: 0
    解决办法II:
    mysql> slave stop;
    mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
    mysql> slave start;
    自己的使用体会:方法一是强制性从某一个点开始同步,会有部分没有同步的数据丢失,后续主服务器上删除记录同步也会有一些错误信息,不会影响使用.方法二不一定会有效果.
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表