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

技术干货 | 数据库实例无法连接?GreatSQL帮你快速找到答案!

万里数据库 2023-07-21
306

小编得知,有一次,客户现场的数据库实例连接不上,需要帮忙排查一下原因,通过查看数据库实例进程,发现实例已经不存在了在错误日志中发现shutdown
字样出现过,没有出现其他报错信息,怀疑是某个用户手动关闭了实例。


本次测试基于GreatSQL 8.0.32-24
通过以下测试步骤,发现确实是用户关闭了主机,导致数据库实例无法连接:

1.正常关闭shutdown

mysql> shutdown;

查看错误日志

2023-04-24T18:41:16.491010+08:00 504 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.32-24).
2023-04-24T18:41:28.657637+08:00 0 [System] [MY-010910] [Server] /greatsql/svr/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.32-24)  MySQL Community Server - GPL.

可以看到正常关闭实例时,会显示是由哪个数据库用户执行的shutdown命令:SHUTDOWN from user root

2.kill关闭

通过kill命令关闭实例

shell> ps -ef | grep mysqld
shell> kill 22803 17012

查看错误日志

2023-04-24T18:42:30.910121+08:00 0 [System] [MY-013172] [Server] Received SHUTDOWN from user <via user signal>. Shutting down mysqld (Version: 8.0.32-24).
2023-04-24T18:42:32.201306+08:00 0 [System] [MY-010910] [Server] /greatsql/svr/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.32-24)  MySQL Community Server - GPL.

可以看到通过kill命令关闭实例会显示 SHUTDOWN from user <via user signal>
,不会显示具体执行kill 的操作系统用户

3.kill -9 关闭

通过kill -9关闭数据库实例

shell> ps -ef | grep mysqld
shell> kill -9 11803 18712

查看错误日志

# 错误日志中不会显示任何信息

如果数据库实例进程不存在,并且错误日志信息中没有明显的数据库实例关闭的信息,可考虑数据库实例是通过 kill -9
 关闭的

4.主机reboot/shutdown

通过正常关闭主机,从而导致数据库实例关闭

shell> reboot

查看错误日志

2023-04-24T18:46:51.021426+08:00 0 [System] [MY-013172] [Server] Received SHUTDOWN from user <via user signal>. Shutting down mysqld (Version: 8.0.32-24).
2023-04-24T18:46:53.774795+08:00 0 [System] [MY-010910] [Server] /greatsql/svr/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.32-24)  MySQL Community Server - GPL.

可以看到通过正常关闭主机导致数据库实例关闭会显示 SHUTDOWN from user <via user signal>
,不会显示具体执行关闭主机的的操作系统用户

5.主机异常断电

通过模拟主机异常断电,从而导致数据库实例关闭

# 对主机做断电操作

查看错误日志

# 错误日志中不会显示任何信息

如果数据库实例进程不存在,并且错误日志信息中没有明显的数据库实例关闭的信息,可考虑数据库实例是由于主机异常断电关闭的。






总结


1.正常关闭数据库实例时,错误日志中会记录是由哪个数据库用户关闭的,如 SHUTDOWN from user root ;

2.通过 kill 命令关闭数据库实例以及关闭主机(reboot/shutdown)导致数据库实例关闭,错误日志中会记录 SHUTDOWN from user <via user signal>
,可通过history命令查看是否执行过 kill 操作或关闭主机的操作;

3.通过kill -9 命令关闭数据库实例以及主机异常断电导致数据库实例关闭,错误日志中不会记录导致数据库实例关闭的信息,可通过history命令查看是否执行过 kill -9 操作。




技术分享丨 关于MySQL binlog解析那些事
技术干货 | 图文结合带你搞懂InnoDB MVCC机制!
技术干货 | GreatSQL VS MySQL?深度解析GreatSQL五大关键特性!



关于万里数据库


北京万里开源软件有限公司(简称“万里数据库”)成立于 2000 年,是专注于国产自主可控数据库产品研发的国家高新技术企业,拥有发明专利、软件著作权百余项。


万里数据库的技术底蕴源自对底层核心代码的掌控,产品始终坚持以“极致稳定、极致性能、极致易用”为目标,经过20余年的研发经验积累,产品在功能、性能、稳定、易用等方面均处于行业领先水平,广泛应用于金融、运营商、能源、政府、交通等行业重要业务系统中的超 1000个业务场景,得到了用户和市场的认可与肯定。


2021 年,公司创立 GreatSQL 开源社区,通过对 MySQL技术的优化,目前已成长为国内活跃的自主开源数据库社区


极致稳定  极致性能  极致易用



“在看”点一下,万里早知道

文章转载自万里数据库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论