杀死mysqld进程

Jos*_*h K 5 mysql sql database sql-update

我有一个约800k行的表.我跑了一个update users set hash = SHA1(CONCAT({about eight fields})) where 1;

现在我有一个挂起的Sequel Pro流程,我不确定这个mysqld过程.

这是两个问题:

  1. 杀死这些程序可能带来什么危害?我正在开发一个单独的数据库,因此系统上的其他数据库不会受到任何损害,对吧?

  2. 假设您必须更新这样的表.什么是更快/更可靠的更新方法,而无需编写单独的脚本.

我只是检查与phpMyAdmin,它看起来好像完成查询.我仍然使用Sequel Pro使用我的两个核心100%...

tad*_*man 5

如果您正在使用由事务日志支持的InnoDB进行恢复和回滚,那么您可以大量使用,尤其是在非生产环境中.

终止renegade查询的最简单方法是使用MySQL shell作为root用户:

SHOW PROCESSLIST;
Run Code Online (Sandbox Code Playgroud)

这将为您提供当前连接的列表以及每个连接的进程ID.要终止任何给定的查询,例如数字19,请使用:

KILL 19;
Run Code Online (Sandbox Code Playgroud)

通常,这将撤消并回滚查询.在某些情况下,这还不够,您可能必须强制退出MySQL服务器进程kill -9.在大多数情况下,您应该能够立即重新启动服务器,并且数据库将处于上次完全提交状态.