Heim >Datenbank >MySQL-Tutorial >关闭MySQL注意事项

关闭MySQL注意事项

WBOY
WBOYOriginal
2016-06-07 15:47:051642Durchsuche

关闭mysql有很多方法,但是如何安全、缓和的关闭mysql不是每个人都知道的,下面 联动北方 来总结一下mysql的几种关闭方式和注意事项 关闭过程: 1、发起shutdown,发出SIGTERM信号 2、有必要的话,新建一个关闭线程(shutdownthread) 3、MySQLServer不再响应



关闭mysql有很多方法,但是如何安全、缓和的关闭mysql不是每个人都知道的,下面联动北方来总结一下mysql的几种关闭方式和注意事项

关闭过程:

    1、发起shutdown,发出 SIGTERM信号

    2、有必要的话,新建一个关闭线程(shutdown thread)

    3、MySQL Server不再响应新的连接请求

    4、逐渐关闭当前的连接、事务

    5、MySQL Server进程关闭所有线程,关闭所有存储引擎;

    6、MySQL Server进程退出

关于KILL指令

    从5.0开始,KILL 支持指定 CONNECTION | QUERY两种可选项:

    KILL CONNECTION和原来的一样,停止回滚事务,关闭该线程连接,释放相关资源;

    KILL QUERY则只停止线程当前提交执行的操作,其他的保持不变;

提交KILL操作后,该线程上会设置一个特殊的 kill标记位。通常需要一段时间后才能真正关闭线程,因为kill标记位只在特定的情况下才检查:

    1、执行SELECT查询时,在ORDER BY或GROUP BY循环中,每次读完一些行记录块后会检查 kill标记位,如果发现存在,该语句会终止;

    2、执行ALTER TABLE时,在从原始表中每读取一些行记录块后会检查 kill 标记位,如果发现存在,该语句会终止,删除临时表;

    3、执行UPDATE和DELETE时,每读取一些行记录块并且更新或删除后会检查 kill 标记位,如果发现存在,该语句会终止,回滚事务,若是在非事务表上的操作,则已发生变更的数据不会回滚;

    4、GET_LOCK() 函数返回NULL;

安全关闭MySQL几点建议

想要安全关闭 mysqld 服务进程,建议按照下面的步骤来进行:

    0、用具有SUPER、ALL等最高权限的账号连接MySQL,最好是用 unix socket 方式连接;

    1、在5.0及以上版本,设置innodb_fast_shutdown = 1,允许快速关闭InnoDB(不进行full purge、insert buffer merge),如果是为了升级或者降级MySQL版本,则不要设置;

    2、设置innodb_max_dirty_pages_pct = 0,让InnoDB把所有脏页都刷新到磁盘中去;

    3、设置max_connections和max_user_connections为1,也就最后除了自己当前的连接外,不允许再有新的连接创建;

    4、关闭所有不活跃的线程,也就是状态为Sleep 且 Time 大于 1 的线程ID;

参考链接:http://bbs.landingbj.com/t-0-247144-1.html



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:mysql集群采用磁盘文件存储表Nächster Artikel:Mysql忘记root密码