着急,主从问题!Slave_IO_Running: No

oraclemch 2010-12-30 02:24:10
下面是Mysql> show slave status \G;的部分输出信息:
Master_Log_File: mysql-bin.000076
Read_Master_Log_Pos: 4
Relay_Log_File: relay-bin.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: mysql-bin.000076
Slave_IO_Running: No
Slave_SQL_Running: Yes



Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 1045
Last_IO_Error: error connecting to master 'rel@192.168.250.20:3306' - retry-time: 60 retries: 86400


mysql错误日志描述:
101230 14:11:21 [Note] 'CHANGE MASTER TO executed'. Previous state master_host='192.168.250.20', master_port='3306', master_log_file='mysql-bin.000076', master_log_pos='4'. New s
tate master_host='192.168.250.20', master_port='3306', master_log_file='mysql-bin.000076', master_log_pos='4'.
101230 14:11:26 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.000076' at position 4, relay log './relay-bin.000001' position: 4
101230 14:11:26 [ERROR] Slave I/O: error connecting to master 'rel@192.168.250.20:3306' - retry-time: 60 retries: 86400, Error_code: 1045
...全文
1062 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
xlb1123 2011-06-27
  • 打赏
  • 举报
回复
我也求助啊,楼主解决是只把密码重新change master to吗?
我的也是主服务器被重启过,重启后就不同步了。然后Slave_IO_Running: No就一直这样。我也重新做了change master to,不过,位置就是原来Read_Master_Log_Pos: 955980485,没有增加位置,但是没有效果。
求助下各位。谢谢!
oraclemch 2011-05-17
  • 打赏
  • 举报
回复
解决了,是密码不多造成的缘故。
happystudy 2011-05-08
  • 打赏
  • 举报
回复
解决了吗,我遇到的情况和你一样
oraclemch 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 ldb2741 的回复:]
你在从机上试试能否用主机分配的帐号登陆主机mysql
[/Quote]

是可以登录主机的啊!~
ldb2741 2010-12-30
  • 打赏
  • 举报
回复
你在从机上试试能否用主机分配的帐号登陆主机mysql
小小小小周 2010-12-30
  • 打赏
  • 举报
回复
master_log_file='mysql-bin.000077',
master_log_pos=219755439;
注意这个,你change 错了;
另外你可以在备份主的时候加个参数 mysqldump --master-data 这样可以在从上还原,
oraclemch 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 mr_mablevi 的回复:]
引用 8 楼 oraclemch 的回复:

1:主机是生产机,一直在跑数据的。mysql> show master status;
+------------------+-----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------……
[/Quote]

也不能丢数据啊,更不能锁表了,因为就是为了不锁表,才搞了一个从服务器,而且从服务器本来就是用来进行数据备份的。
oraclemch 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 mr_mablevi 的回复:]
引用 8 楼 oraclemch 的回复:

1:主机是生产机,一直在跑数据的。mysql> show master status;
+------------------+-----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------……
[/Quote]

现在主服务器动不了,一直有数据录入中。

只可以修改从服务器。
小小小小周 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 oraclemch 的回复:]

1:主机是生产机,一直在跑数据的。mysql> show master status;
+------------------+-----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-----------------……
[/Quote]

你应该
change master to master_user='rel',
master_password='slavepd1012301151' ,
master_host='192.168.250.20',
master_log_file='mysql-bin.000077',
master_log_pos=219755439;

红色部分为住上的日志名称和Position;
不过直接这样change的话,会出现从少的数据会丢失,最好让锁定下主;如:

A:使用下面的步骤:

1. 在主服务器上,执行这些语句:

mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;


记录SHOW语句的输出的日志名和偏移量。这些是复制坐标。

2. 在从服务器上,发出下面的语句,其中Master_POS_WAIT()函数的参量是前面步骤中的得到的复制坐标值:

mysql> SELECT MASTER_POS_WAIT('log_name', log_offset);
SELECT语句阻塞直到从服务器达到指定的日志文件和偏移量。此时,从服务器与主服务器同步,语句返回。

3. 在主服务器上,发出下面的语句允许主服务器重新开始处理更新:

mysql> UNLOCK TABLES;

oraclemch 2010-12-30
  • 打赏
  • 举报
回复
1:主机是生产机,一直在跑数据的。mysql> show master status;
+------------------+-----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+-----------+--------------+------------------+
| mysql-bin.000077 | 219755439 | | |
+------------------+-----------+--------------+------------------+
1 row in set (0.00 sec)


2: 从机器上面 change master sql代码:change master to master_user='rel',
master_password=' slavepd1012301151' ,
master_host='192.168.250.20',
master_log_file='mysql-bin.000076',
master_log_pos=0 ;


小小小小周 2010-12-30
  • 打赏
  • 举报
回复
master的截图看看.顺便把在slave上的change master 的命令输出;
oraclemch 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 mr_mablevi 的回复:]
你可以在主上.show master status \G; 来找到当前的position;
要想找最早的,需要看2进制日志吧;(要想change 这个position 给从的话,确保这个position以后的动作在从上没有执行过.)
再change master;

也可以通过从的中继日志来查找偏移量,不过需要计算;o(∩_∩)o
[/Quote]

我用了show master status \G上的偏移量pos值,还是报一样的错误的。
小小小小周 2010-12-30
  • 打赏
  • 举报
回复
你可以在主上.show master status \G; 来找到当前的position;
要想找最早的,需要看2进制日志吧;(要想change 这个position 给从的话,确保这个position以后的动作在从上没有执行过.)
再change master;

也可以通过从的中继日志来查找偏移量,不过需要计算;o(∩_∩)o
oraclemch 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mr_mablevi 的回复:]
IO线程出现问题了,可能你主服务器关机或则重启过导致,主服务器现在正常吗?
要是主没问题,则看看他的2进制名和偏移值和从上一样不,不一样则重新change mastger 一下即可.
[/Quote]

默认偏移值是4。
oraclemch 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mr_mablevi 的回复:]
IO线程出现问题了,可能你主服务器关机或则重启过导致,主服务器现在正常吗?
要是主没问题,则看看他的2进制名和偏移值和从上一样不,不一样则重新change mastger 一下即可.
[/Quote]

主服务器重启过,新日志为mysql-bin.000076
,问下如何查看mysql-bin.000076日志的最早一个偏移值呢?
小小小小周 2010-12-30
  • 打赏
  • 举报
回复
IO线程出现问题了,可能你主服务器关机或则重启过导致,主服务器现在正常吗?
要是主没问题,则看看他的2进制名和偏移值和从上一样不,不一样则重新change mastger 一下即可.
oraclemch 2010-12-30
  • 打赏
  • 举报
回复
在从机器上用mysql连接主机是可以连接成功的: mysql -h192.168.250.20 -urel -pslavepd1012301151

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧