一次MySQL启动导致的事故实战记录


Posted in MySQL onSeptember 15, 2021

MySQL` 启动存在端口被监听, 但服务没完全启动的情况.

背景

MySQL 启动时会进行 第一次 初始化数据库, 等待 MySQL 完全启动后, 再进行 第二次 初始化数据库.

第一次 初始化数据库使用 --skip-networking (这个选项表示禁止 MySQL 的 TCP/IP 连接方式) 启动 MySQL 进行初始化,

初始化完成后会关闭 --skip-networking 选项重新启动 MySQL.

第二次 初始化数据库会设置 root 密码.

判断 MySQL 已完全启动的方式

尝试主动连接 MySQL, 连接成功则表明服务已完全启动

mysql -hlocalhost -P3306 -uroot

事故

由于上面的判断方式使用的是 socket 进行连接数据库, 但第一次只是禁止 MySQL 的 TCP/IP 连接方式,

所以没等 第一次 初始化数据库完成可能就已经进行了 第二次 初始化数据库,

而 第二次 初始化数据库提前于 第一次 初始化数据库设置 root 密码, 导致 第一次 初始化连不上数据库而失败,

最后没有开启 TCP/IP 连接方式, 应用无法连接数据库.

第一次修改

使用 -h127.0.0.1 进行连接数据库

mysql -h127.0.01 -P3306 -uroot

但由于 root 用户的 host 设置的是 localhost, 不允许 127.0.0.1 进行连接, 第一次修改失败.

第二次修改

wait-for-it.sh 127.0.0.1:3306 --timeout=300

mysql -hlocalhost -P3306 -uroot

wait-for-it.sh 用于检测 127.0.0.1:3306 是否处于监听状态, 如果是, 则表明 第一次 初始化数据库完成了,

然后再使用 localhost 去尝试连接数据库.

原文链接: k8scat.com/posts/wait-…

总结

到此这篇MySQL启动导致的事故的文章就介绍到这了,更多相关MySQL启动导致事故内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL update set 和 and的区别
May 08 MySQL
MySQL 查询速度慢的原因
May 25 MySQL
Mysql关于数据库是否应该使用外键约束详解说明
Oct 24 MySQL
MySQL窗口函数的具体使用
Nov 17 MySQL
关于mysql中时间日期类型和字符串类型的选择
Nov 27 MySQL
MySQL的InnoDB存储引擎的数据页结构详解
Mar 03 MySQL
MySQL中B树索引和B+树索引的区别详解
Mar 03 MySQL
一文简单了解MySQL前缀索引
Apr 03 MySQL
MySQL库表太大怎么办? 数据库分库分表项目实践
Apr 11 MySQL
MySQL三种方式实现递归查询
Apr 18 MySQL
MySQL GTID复制的具体使用
May 20 MySQL
MySQL中LAG()函数和LEAD()函数的使用
Aug 14 MySQL
MySQL中几种插入和批量语句实例详解
Sep 14 #MySQL
MySQL 如何限制一张表的记录数
Sep 14 #MySQL
MySQL into_Mysql中replace与replace into用法案例详解
Sep 14 #MySQL
MYSQL 的10大经典优化案例场景实战
Sep 14 #MySQL
MySQL中连接查询和子查询的问题
mysql配置SSL证书登录的实现
MySQL约束超详解
Sep 04 #MySQL
You might like
[原创]PHP简单开启curl的方法(测试可行)
2016/01/11 PHP
thinkPHP模板算术运算相关函数用法分析
2016/07/12 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
2018/09/04 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
Display SQL Server Version Information
2007/06/21 Javascript
JavaScript在IE中“意外地调用了方法或属性访问”
2008/11/19 Javascript
jQuery 可以拖动的div实现代码 脚本之家修正版
2009/06/26 Javascript
基于jquery的一个简单的脚本验证插件
2010/04/05 Javascript
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
Jquery中map函数的用法
2016/06/03 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
2016/07/08 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
angular中子控制器向父控制器传值的实例
2018/10/08 Javascript
js实现导航跟随效果
2018/11/17 Javascript
JavaScript代理模式原理与用法实例详解
2020/03/10 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
[52:39]完美世界DOTA2联赛PWL S3 CPG vs Forest 第一场 12.16
2020/12/17 DOTA
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
python 实现单通道转3通道
2019/12/03 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
网络维护管理员的自我评价分享
2013/11/11 职场文书
竞职演讲稿范文
2014/01/11 职场文书
群众路线教育党课主持词
2014/04/01 职场文书
工商管理专业毕业生求职信
2014/05/26 职场文书
商场周年庆活动方案
2014/08/19 职场文书
科学育儿宣传标语
2014/10/08 职场文书
《平移和旋转》教学反思
2016/02/19 职场文书
民事调解协议书
2016/03/21 职场文书
在redisCluster中模糊获取key方式
2021/07/09 Redis
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis