一次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 28 MySQL
MySQL如何构建数据表索引
May 13 MySQL
正确使用MySQL INSERT INTO语句
May 26 MySQL
MySQL单表千万级数据处理的思路分享
Jun 05 MySQL
MySQL Shell import_table数据导入的实现
Aug 07 MySQL
mysql中int(3)和int(10)的数值范围是否相同
Oct 16 MySQL
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
Feb 12 MySQL
Arthas排查Kubernetes中应用频繁挂掉重启异常
Feb 28 MySQL
MySQL Server 层四个日志
Mar 31 MySQL
使用Mysql计算地址的经纬度距离和实时位置信息
Apr 29 MySQL
MySQL 数据 data 基本操作
May 04 MySQL
SQL语句中EXISTS的详细用法大全
Jun 25 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
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
php常用ODBC函数集(详细)
2013/06/24 PHP
php发送post请求的三种方法
2014/02/11 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
struts2 jquery 打造无限层次的树
2009/10/23 Javascript
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
2014/10/26 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
2015/03/26 Javascript
JavaScript中for循环的使用详解
2015/06/03 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
js闭包用法实例详解
2016/12/13 Javascript
基于node.js依赖express解析post请求四种数据格式
2017/02/13 Javascript
vue修改vue项目运行端口号的方法
2017/08/04 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
2017/12/18 jQuery
Vue中render函数的使用方法
2018/01/31 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
JavaScript十大取整方法实例教程
2020/12/03 Javascript
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
Python中的面向对象编程详解(上)
2015/04/13 Python
Python每天必学之bytes字节
2016/01/28 Python
python中copy()与deepcopy()的区别小结
2018/08/03 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
使用 Python 读取电子表格中的数据实例详解
2020/04/17 Python
matplotlib 三维图表绘制方法简介
2020/09/20 Python
意大利运动服减价商店:ScontoSport
2020/03/10 全球购物
SOA面试题:如何在SOA中实现松耦合
2013/07/21 面试题
配件采购员岗位职责
2013/12/03 职场文书
小学英语教学反思案例
2014/02/04 职场文书
企业文化宣传标语
2014/06/09 职场文书
活动总结报告怎么写
2014/07/03 职场文书
学生检讨书怎么写?
2014/10/10 职场文书
房屋授权无偿使用证明
2014/11/29 职场文书
大学毕业典礼致辞
2015/07/29 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书