一次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命令行操作时的编码问题详解
Apr 14 MySQL
MySQL数据库压缩版本安装与配置详细教程
May 21 MySQL
MySQL索引失效的典型案例
Jun 05 MySQL
MySQL系列之开篇 MySQL关系型数据库基础概念
Jul 02 MySQL
MySQL系列之十三 MySQL的复制
Jul 02 MySQL
MySQL学习之基础操作总结
Mar 19 MySQL
详细聊一聊mysql的树形结构存储以及查询
Apr 05 MySQL
Mysql将字符串按照指定字符分割的正确方法
May 30 MySQL
MySQL数据库之内置函数和自定义函数 function
Jun 16 MySQL
MySQL的表级锁,行级锁,排它锁和共享锁
Jul 15 MySQL
mysql sock文件存储了什么信息
Jul 15 MySQL
MySQL中dd::columns表结构转table过程及应用详解
Sep 23 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
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
sphinx增量索引的一个问题
2011/06/14 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
2014/03/17 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
2019/05/31 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
脚本吧 - 幻宇工作室用到js,超强推荐base.js
2006/12/23 Javascript
JavaScript 继承的实现
2009/07/09 Javascript
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
jQuery学习4 浏览器的事件模型
2010/02/07 Javascript
js 小数取整的函数
2010/05/10 Javascript
JavaScript的9种继承实现方式归纳
2015/05/18 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
2015/06/18 Javascript
js调用百度地图及调用百度地图的搜索功能
2015/09/07 Javascript
JS简单实现点击复制链接的方法
2016/08/03 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
[02:44]重置世界,颠覆未来——DOTA2 7.23版本震撼上线
2019/12/01 DOTA
Python使用pylab库实现画线功能的方法详解
2017/06/08 Python
Python如何获得百度统计API的数据并发送邮件示例代码
2019/01/27 Python
树莓派使用USB摄像头和motion实现监控
2019/06/22 Python
python3.7 使用pymssql往sqlserver插入数据的方法
2019/07/08 Python
django重新生成数据库中的某张表方法
2019/08/28 Python
python+OpenCV实现图像拼接
2020/03/05 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
浅谈CSS3特性查询(Feature Query: @supports)功能简介
2017/07/31 HTML / CSS
高级运动鞋:GREATS
2019/07/19 全球购物
北承题目(C++)
2012/05/16 面试题
学生实习自我鉴定
2013/10/11 职场文书
大学生的自我鉴定范文
2014/01/21 职场文书
法人授权委托书
2014/04/03 职场文书
气象学专业个人求职信
2014/04/22 职场文书
小学校园广播稿集锦
2014/10/04 职场文书
关于长城的导游词
2015/01/30 职场文书
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python