暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

MySQL小众有用参数之offline_mode

原创 Rock Yan 云和恩墨 2023-10-09
595

参数描述

  从MySQL 5.7 版本开始增加了offline_mode 离线模式参数,以便于数据库管理员的升级维护工作,在以往运维过程中,遇到升级迁移切换等维护工作时,通常我们常规办法需要将用户连接杀掉,也可以使用pt-kill 工具来杀会话:

select concat('kill ',id,';') from information_schema.processlist where user='app_user';

--或者使用percona pt-kill工具
pt-kill --host=127.0.0.1 --user=xxx --password=xxxxxx --port=xxxx --busy-time 10 --match-command="Query" --victim all --interval 10 --kill --log=/tmp/pt_kill.log
复制

参数影响

  • 在设置成离线模式后,非SUPER账户的会话会被断开(相当于执行了kill session操作)
  • SUPER账户能够保持连接,并可以通过SUPER账户创建新的连接
  • 备库复制线程不会被中断

使用场景

  1. 数据库升级前的杀会话情况
  2. 业务变更前的杀会话情况
  3. 数据迁移前的杀会话情况
  4. 其他需要杀会话或者断开当前用户连接的一切场景
  5. 替代kill命令

 再有维护操作需求就不用这么麻烦了。只需在线动态修改参数offline_mode即可,可立即生效,非常的简单粗暴。

测试验证

mysql> set global offline_mode = on;  -- 开启离线模式,拒绝连接请求
mysql> set global offline_mode = off; -- 关闭离线模式(默认关闭),允许连接请求

开启离线模式后,新用户或者会话无法访问数据库
# mysql -uroot -pmysql -h 192.168.1.1 -P 3306
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 3032 (HY000): The server is currently in offline mode

说明:正在运行的SQL也会被终并断开连接
ERROR 2013 (HY000): Lost connection to MySQL server during query
No connection. Trying to reconnect...
ERROR 3032 (HY000): The server is currently in offline mode
ERROR:
Can't connect to the server
复制

官方文档描述

5.7版本:
image.png

8.0版本:
image.png

8.1版本:
image.png

参考文档

https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html
https://dev.mysql.com/doc/refman/8.1/en/server-system-variables.html

最后修改时间:2023-10-10 08:14:15
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论