win2003 mysql单向同步配置步骤[已测]

 更新时间:2011年06月18日 22:50:32   作者:  
为了服务器安全特将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;

自己的使用体会:方法一是强制性从某一个点开始同步,会有部分没有同步的数据丢失,后续主服务器上删除记录同步也会有一些错误信息,不会影响使用.方法二不一定会有效果.

相关文章

  • MySQL INSERT语句实现当记录不存在时插入的几种方法

    MySQL INSERT语句实现当记录不存在时插入的几种方法

    MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面这篇文章主要介绍了MySQL INSERT语句实现当记录不存在时插入的几种方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • MySQL定时任务不能正常执行的原因分析及解决方法

    MySQL定时任务不能正常执行的原因分析及解决方法

    大家好,本篇文章主要讲的是MySQL定时任务不能正常执行的原因分析及解决方法,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • 新手学习MySQL索引

    新手学习MySQL索引

    如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有索引的MySQL就是一个人力三轮车。通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢,下面小编来带大家了解下索引
    2019-05-05
  • MySQL提取Json内部字段转储为数字

    MySQL提取Json内部字段转储为数字

    本文主要介绍了MySQL提取Json内部字段转储为数字,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • mysql日期函数TO_DAYS()函数的详细讲解

    mysql日期函数TO_DAYS()函数的详细讲解

    在SQL中我们经常需要根据时间字段查询数据,今天用到一个好用的时间字段,用来查询一整天的数据,下面这篇文章主要给大家介绍了关于mysql日期函数TO_DAYS()函数的相关资料,需要的朋友可以参考下
    2022-08-08
  • MySQL中LIKE子句相关使用的学习教程

    MySQL中LIKE子句相关使用的学习教程

    这篇文章主要介绍了MySQL中LIKE子句相关使用的学习教程,LIKE子句一般用于WHERE语句中,需要的朋友可以参考下
    2015-12-12
  • MySQL数据库升级的一些

    MySQL数据库升级的一些"陷阱"

    这篇文章主要介绍了MySQL数据库升级需要注意的地方,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08
  • MySQL中的FIND_IN_SET函数的使用场景

    MySQL中的FIND_IN_SET函数的使用场景

    MySQL 中的 FIND_IN_SET() 函数用于在一个逗号分隔的字符串列表中查找指定的值,并返回其在列表中的位置,下面就来介绍一下FIND_IN_SET函数的具体使用,感兴趣的可以了解一下
    2024-05-05
  • MySQL 基础常用命令总结

    MySQL 基础常用命令总结

    这篇文章主要介绍了MySQL 的基础常用命令,在执行语句的时候,很多命令都是必须记住的,想具体了解的小伙伴请参考下面文章内容
    2021-09-09
  • mysql主键的缺少导致备库hang住

    mysql主键的缺少导致备库hang住

    最近线上频繁的出现slave延时的情况,经排查发现为用户在删除数据的时候,由于表主键的主键的缺少,同时删除条件没有索引,或或者删除的条件过滤性极差,导致slave出现hang住
    2016-05-05

最新评论