收到报警,mysql的从数据库在同步的过程出现问题,已停止同步。

ERROR] Slave SQL:  Error  "Lock wait timeout exceeded; try restarting transaction" on query. Default database: "yang". Query: "UPDATE workitem SET status = state, modify_time=1329640301 where workitem_id = 800", Error_cod

Slave sql not running: result is No|slave_sql_running=0

登录数据库查看!

root@127.0.0.1 : yang 16:48:34> show slave status \G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 10.249.119.52

Master_User: replicator

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.001156

Read_Master_Log_Pos: 49021182

Relay_Log_File: slave-relay.118531

Relay_Log_Pos: 1342

Relay_Master_Log_File: mysql-bin.001156

Slave_IO_Running: Yes

Slave_SQL_Running: No

........

Last_Errno: 1205

Last_Error: Error 'Lock wait timeout exceeded; try restarting transaction' on query. Default database: 'yang'. Query: 'UPDATE workitem SET status = state, modify_time=1329640301 where workitem_id = 800'

Skip_Counter: 0

Exec_Master_Log_Pos: 47702497

Relay_Log_Space: 1319098

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

...........

Seconds_Behind_Master: NULL

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 1205

Last_SQL_Error: Error 'Lock wait timeout exceeded; try restarting transaction' on query. Default database: 'yang'. Query: 'UPDATE work SET status = state, modify_time=1329640301 where work_id = 800'

1 row in set (0.00 sec)

从库由于Error 'Lock wait timeout exceeded; try restarting transaction' on query. Default database: 'yang'. Query: 'UPDATE work SET status = state, modify_time=1329640301 where work_id = 800'; 锁等待超时导致事务失败,多次重试不成功。Slave_SQL_进程中断!

解决办法一:

1.首先停掉Slave服务:

mysql>slave stop;

2.到主服务器上查看主机状态,

mysql> show master status;

+------------------+-----------+--------------+------------------+

| File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+-----------+--------------+------------------+

| mysql-bin.001156 | 48291554  |              |                  |

+------------------+-----------+--------------+------------------+

1 row in set (0.00 sec)

记录File和Position对应的值 mysql-bin.001156,48291554

3 到slave服务器上执行手动同步:

mysql> change master to

> master_host='master_ip',

> master_user='user',

> master_password='pwd',

> master_port=3306,

> master_log_file='mysql-bin.001156',

> master_log_pos=48291554;

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

注:这种办法可能会导致从服务器上的数据不完整,如从服务器一直出错,但主服务器日志文件一直在增加,过好长时间,再直接从主服务器上取日志位置,可能会造成错误期间的数据无法更新到从服务器中.这里建议采用下面的这种办法(将错误语句直接跳过).

解决办法二:

mysql> slave stop;

mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

mysql> slave start;

set GLOBAL SQL_SLAVE_SKIP_COUNTER=N,用来跳过备机的一条或N条出错的复制语句。然后重新start slave即可。

由于我们的是双master 架构,所以为了避免重复执行变更的语句,实际操作:

root@127.0.0.1 : (none) 16:56:00> SET SQL_LOG_bin=0;

Query OK, 0 rows affected (0.00 sec)

root@127.0.0.1 : (none) 16:56:06> use yang;

Database changed

执行导致错误的语句

root@127.0.0.1 : yang 16:56:10> UPDATE workitem SET status = state, modify_time=1329640301 where workitem_id = 800;

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0

root@127.0.0.1 : yang 16:56:45>stop slave;

Query OK, 0 rows affected (0.00 sec)

root@127.0.0.1 : yang 16:56:46>set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

Query OK, 0 rows affected (0.00 sec)

root@127.0.0.1 : yang 16:56:46>start slave;

Query OK, 0 rows affected (0.00 sec)

最终确认结果

root@127.0.0.1 : (none) 16:59:40> show slave status \G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 10.249.119.52

Master_User: replicator

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.001156

Read_Master_Log_Pos: 49846932

Relay_Log_File: slave-relay.118532

Relay_Log_Pos: 235831

Relay_Master_Log_File: mysql-bin.001156

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

..........

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 49846932

Relay_Log_Space: 2144848

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

1 row in set (0.00 sec)

至此问题解决~!

mysql sql running no_【MySql】复制出现Slave_SQL_Running: No 错误解决相关推荐

  1. mysql slow queries,检查 mysql sql 效能使用 MySQL Slow Queries

    检查 mysql sql 效能使用 MySQL Slow Queries 点击: 发布日期:2013-05-06 本文来自 www.020fix.com 由于 MySQL 的普及,我们不难发现有许多 ...

  2. mysql - sql语句 之 mysql错误代码大合(转载)

    用任何主机语言调用MySQL时可能出现的错误. 首先,列出了服务器错误消息.其次列出了客户端程序消息. B.1. 服务器错误代码和消息 服务器错误信息来自下述源文件:  · 错误消息信息列在share ...

  3. mysql is running but_MySQL: mysql is not running but lock exists 的解决方法

    MySQL: mysql is not running but lock exists 的解决方法 (2010-12-13 22:41:20) 标签: 杂谈 分类: 技术 安装mysql 版本: my ...

  4. mysql using btree_mysql导入数据时提示 USING BTREE 错误解决办法

    错误原因: 主要是是MYSQL 5.1的一个BUG,其出现原因是mysql 5.1和mysql 5.0在处理到索引语句时有所区别. 案例: 有时导入mysql会提示如下错误: ERROR 1064 ( ...

  5. centos mysql pid_centos7 mysql The server quit without updating PID file(错误解决)

    1 问题 [root@localhost mysql]# /etc/rc.d/init.d/mysql status MySQL is not running, but lock file (/var ...

  6. windows mysql is read only_mysql中Table is read only错误解决方法(转载)

    下面来给各位同学介绍一下关于mysql中Table is read only的解决技巧,希望例子能帮助到各位. 今天再我把数据库data 拷贝到linux 下运行程序 "mysql中Tabl ...

  7. mysql sql trace_用MySQL的optimizer_trace进行sql调优

    在我们调优MySQL的SQL时候,通常使用三种工具进行查看sql执行的效率,explain.profile.optimizer_trace.前两个经常被人使用,由于第三个难度较大,大家使用的较少,下面 ...

  8. mysql SQL命令查看Mysql数据库磁盘使用量

    – 1. 查询所有数据总的磁盘使用量: select concat(round(sum(data_length/1024/1024),2),'MB') as data from information ...

  9. mysql 主从1146_MySQL5.7主从复制slave报Last_Errno: 1146错误解决

    前提:由于slave磁盘未及时扩容原因导致磁盘即将写满,为了不影响业务将slave实例里一个10G的库drop了(项目前期建的库,数据现在已不使用了),然后又drop了master上的该库(对于大库建 ...

最新文章

  1. cuda 安装_win10+VS 2017 安装 CUDA(Visual Studio Integration失败)
  2. notepad++取消语法检测
  3. 校宝在线携手神策数据 数据赋能产品服务体验双升级
  4. python 递归函数_连载|想用Python做自动化测试?递归函数
  5. UltiDev Cassini Web Server介绍
  6. 正式环境docker部署hyperf_使用docker搭建hyperf环境连接mysql
  7. NLP之---word2vec算法skip-gram原理详解
  8. Ubuntu 16.04 - 64bit 解压 rar 报错 Parsing Filters not supported
  9. Angular通过CORS实现跨域方案
  10. 浏览器正确理解和使用GBK及UTF-8(UTF-8 + BOM)网页编码
  11. C++ 多线程下的单例模式
  12. self-hacking第五天
  13. LayaAir 定时器 Timer
  14. ojdbc6报红以及nested exception is org.hibernate.service.spi.ServiceException: 已解决
  15. 【AngularJS】 # AngularJS入门
  16. 网站换服务器 备案,网站换服务器备案吗
  17. 一个IT技术经理需要具备的素质
  18. python绘制积分函数_Python超越函数积分运算以及绘图实现代码
  19. VSCode 前端插件推荐
  20. 嵌入式linux之yocto(五)拓展核心镜像

热门文章

  1. python 模糊匹配_很冷门,但非常实用的 Python 库
  2. 使用try-catch-finally处理异常---java
  3. 参数名称 java_java – 具有重要名称的WSDL中的参数名称
  4. mat 内存分析 Linux,JVM内存分析工具MAT使用简介
  5. SkyEye——汽车电子系统仿真测试工具
  6. python中读取txt文件、统计其中所有字母出现的频度_Python编程小技巧:如何统计序列中元素的出现频度...
  7. python3 robotframework+pycharm框架搭建
  8. c语言中文刷屏,c语言二维数组刷屏练习.doc
  9. 测试必备:单元测试测试类,以帮助匿名管理调查的类为例详解--白盒测试
  10. 包的引入(base版本)