免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4409 | 回复: 5
打印 上一主题 下一主题

如何实现mysql主从同步,我需要在两天更新一次 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-12-02 15:17 |只看该作者 |倒序浏览
我按照网上比较流行的配法配置了,可是出错,请高手指点
错误信息如下:
041202 14:43:39  InnoDB: Started
MySql: ready for connections.
Version: '4.0.13-nt'  socket: ''  port: 3306
041202 14:43:39  Slave I/O thread: connected to master 'root@192.168.1.224:3306',  replication started in log 'FIRST' at position 4
041202 14:43:39  Error reading packet from server: Binary log is not open (server_errno=1236)
041202 14:43:39  Got fatal error 1236: 'Binary log is not open' from master when reading data from binary log
041202 14:43:39  Slave I/O thread exiting, read up to log 'FIRST', position 4

论坛徽章:
0
2 [报告]
发表于 2004-12-02 15:29 |只看该作者

如何实现mysql主从同步,我需要在两天更新一次

在master的/etc/my.cnf里把log-bin打开...

在master上用mysql登陆...然后
mysql>;show processlist;
把结果丢上来..
mysql>;show master status;
把结果丢上来;
在slave上用mysql登陆...然后
mysql>;show processlist;
把结果丢上来
mysql>;show slave status;
把结果丢上来...

应该可以知道是什么原因啦,我目前通过这四个来诊断错误...
如果英文好的话,可以去看replication的troubleshooting...在Mysql的manual里...

论坛徽章:
0
3 [报告]
发表于 2004-12-02 15:45 |只看该作者

如何实现mysql主从同步,我需要在两天更新一次

show master status
是空的
show slave status如下:

| 192.168.1.224 | root        | 3306        | 60            |
4                   | asustemp-relay-bin.018 | 4             |
     | No               | Yes               | backup          |
    | 0          |            | 0            | 0                   | 0

slave机子上show processlist
--------------------+------------------+
| 10007 | root        | 127.0.0.1:2255 | backup | Killed  | 3681 |
                    | NULL             |
| 19918 | root        | 127.0.0.1:4258 | backup | Sleep   | 3587 |
                    | NULL             |
| 19919 | root        | 127.0.0.1:4259 | backup | Sleep   | 3587 |
                    | NULL             |
| 20010 | root        | 127.0.0.1:4350 | backup | Sleep   | 3586 |
                    | NULL             |
| 20015 | system user |                | NULL   | Connect | 2125 | Slave: waiting for binlog update | NULL             |
| 20020 | root        | 127.0.0.1:4614 | NULL   | Query   | 0    | NULL
                    | show processlist |

master机子上show processlist
'15','root','ASUSTEMP:3064','backup','Sleep','787','',[NULL]
'17','root','127.0.0.1:2654',[NULL],'Sleep','3006','',[NULL]
'24','root','ASUSTEMP:4637',[NULL],'Query','0',[NULL],'show processlist'

论坛徽章:
0
4 [报告]
发表于 2004-12-02 15:54 |只看该作者

如何实现mysql主从同步,我需要在两天更新一次

在master上/etc/my.cnf里[mysqld]里加一条
log-bin
然后重新启动master的mysql
然后再在系统上(不在Mysql里)
#netstat -na | grep 3306
看你的slave有没跟你的master有一条established的连接...
或者也丢上来...


btw:你的Mysql正在运行吗?
slave上有两个thread
master是写通过I/O thread 写binlog给slave,slave转化成relay-log,然后再由slave的SQL thread 还原出来...

通过master上mysql>;show processlist;
是为了查看你的I/O thread是否正常...

看我的是这样的...
  1. +----+--------+---------------------+------+-------------+------+----------------------------------------------------------------+------------------+
  2. | Id | User   | Host                | db   | Command     | Time | State                                                          | Info             |
  3. +----+--------+---------------------+------+-------------+------+----------------------------------------------------------------+------------------+
  4. |  2 | backup | 192.168.37.189:1117 | NULL | Binlog Dump | 7507 | Has sent all binlog to slave; waiting for binlog to be updated | NULL             |
  5. |  4 | root   | localhost           | NULL | Query       | 0    | NULL                                                           | show processlist |
  6. +----+--------+---------------------+------+-------------+------+----------------------------------------------------------------+------------------+
  7. 2 rows in set (0.00 sec)
复制代码


注意其中的"has sent............."

这样就是正常的...

mysql>;show master status;
应该是这样的
  1. mysql>; show master status;
  2. +----------------+----------+--------------+------------------+
  3. | File           | Position | Binlog_do_db | Binlog_ignore_db |
  4. +----------------+----------+--------------+------------------+
  5. | Server-bin.017 | 242      | backup       |                  |
  6. +----------------+----------+--------------+------------------+
  7. 1 row in set (0.00 sec)
复制代码

如果是空的,证明是master上并没有把它自己配置成master,看看/etc/my.cnf有没
"server-id = 1"

或者把下面的结果丢上来
#sed -n '/\[mysqld\]/,/\[mysqldump\]/p' /etc/my.cnf | sed -n '/^#/!p'
这个是为了看你的/etc/my.cnf里[mysqld]里有些什么内容...

论坛徽章:
62
2016科比退役纪念章
日期:2016-06-28 17:45:06奥兰多魔术
日期:2015-05-04 22:47:40菠菜神灯
日期:2015-05-04 22:35:07菠菜神灯
日期:2015-05-04 22:35:02NBA季后赛大富翁
日期:2015-05-04 22:33:34NBA常规赛纪念章
日期:2015-05-04 22:32:032015年亚洲杯纪念徽章
日期:2015-04-14 16:54:452015年亚洲杯之朝鲜
日期:2015-03-19 23:03:16明尼苏达森林狼
日期:2015-03-16 21:51:152015小元宵徽章
日期:2015-03-06 15:57:202015年迎新春徽章
日期:2015-03-04 09:55:282015年辞旧岁徽章
日期:2015-03-03 16:54:15
5 [报告]
发表于 2004-12-02 16:45 |只看该作者

如何实现mysql主从同步,我需要在两天更新一次

原帖由 "mbgmbg" 发表:
我按照网上比较流行的配法配置了,可是出错,请高手指点
错误信息如下:
041202 14:43:39  InnoDB: Started
MySql: ready for connections.
Version: '4.0.13-nt'  socket: ''  port: 3306
041202 14:43:39  Sl..........


搞主从不符合你需要两天更新一次的要求
,dump多简单

论坛徽章:
0
6 [报告]
发表于 2004-12-02 17:09 |只看该作者

如何实现mysql主从同步,我需要在两天更新一次

因为远端计算机没有公网IP,所以只有送出来
我现在是在windows2000下配置测试的,我的slave端my.ini文件如下
#This File was made using the WinMySQLAdmin 1.4 Tool
#2004-11-29 8:53:43

#Uncomment or Add only the keys that you know how works.
#Read the MySQL Manual for instructions

[mysqld]

master-host=192.168.1.224
master-user=backup
master-password=
master-port=3306
server-id=2
master-connect-retry=60
replicate-do-db=backup
log-slave-updates

basedir=C:/mysql
#bind-address=192.168.1.229
datadir=C:/mysql/data
#language=C:/mysql/share/your language directory
#slow query log#=
#tmpdir#=
#port=3306
#set-variable=key_buffer=16M
[WinMySQLadmin]
Server=C:/mysql/bin/mysqld-max-nt.exe
user=root
password=1

master端的my.ini文件配置如下:
#This File was made using the WinMySQLAdmin 1.4 Tool
#2004-12-2 16:38:10

#Uncomment or Add only the keys that you know how works.
#Read the MySQL Manual for instructions

[mysqld]


basedir=C:/mysql
#bind-address=192.168.1.224
datadir=C:/mysql/data
#language=C:/mysql/share/your language directory
#slow query log#=
#tmpdir#=
#port=3306
#set-variable=key_buffer=16M
[WinMySQLadmin]
Server=C:/mysql/bin/mysqld-nt.exe
user=root
password=1

server-id=1
log-bin
binlog-bin-db=backup

就是这样配置的,结果无论show processlist还是show slave status都是不正常的
master.info文件如下:

4
192.168.1.224
backup

3306
60
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP