Chinaunix首页 | 论坛 | 博客
  • 博客访问: 91918
  • 博文数量: 16
  • 博客积分: 607
  • 博客等级: 中士
  • 技术积分: 190
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-20 08:43
文章分类

全部博文(16)

文章存档

2011年(6)

2010年(10)

我的朋友

分类: Mysql/postgreSQL

2010-01-21 15:13:29

1、停止主mysql的服务,将需要同步的数据库导入到从mysql中,

2、在主mysql中,设置一个同步用的账户slave

Mysql>grant replication slave on *.* to slave@”%” identified by “123456”;

Mysql>flush privileges;     # 更新权限

3、在从mysql的配置文件my.cnf中,修改

server-id       = 2

master-host=192.168.1.34

master-user=slave

master-password=123456

replicate-do-db=aaa      #需要同步的数据库名

replicate-do-db=bbb     

replicate-do-db=ccc

slave-skip-errors=all

log-bin=mysql-bin       #此设置一般都开启,同时检查主mysql中此项是否开启

4、重启主、从mysql服务

5、在从mysql中检测从服务器状态

Mysql>show slave status\G;

正常的结果应该是:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

注意:如遇到某些库不能更新的情况,可以删除从/mysql/var/下的master.Inforelay-log.info

 

主从同步问题解决

今天检查数据库发现一台MySQL Slave未和主机同步,查看Slave状态:

mysql> show slave status\G

Slave_IO_Running: Yes

Slave_SQL_Running: No

Seconds_Behind_Master:NULL

原因:

1.程序可能在slave上进行了写操作

2.也可能是slave机器重起后,事务回滚造成的.

 

解决办法I

1.首先停掉Slave服务:slave stop

到主服务器上查看主机状态:

记录FilePosition对应的值。

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;

阅读(531) | 评论(0) | 转发(0) |
0

上一篇:编译安装mysql

下一篇:TOMCAT安装

给主人留下些什么吧!~~