一次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 root密码的重置方法
Apr 21 MySQL
MySQL中InnoDB存储引擎的锁的基本使用教程
May 26 MySQL
MySQL REVOKE实现删除用户权限
Jun 18 MySQL
mysql 数据插入优化方法之concurrent_insert
Jul 01 MySQL
MySQL 那些常见的错误设计规范,你都知道吗
Jul 16 MySQL
Prometheus 监控MySQL使用grafana展示
Aug 30 MySQL
MySQL之select、distinct、limit的使用
Nov 11 MySQL
MySQL利用UNION连接2个查询排序失效详解
Nov 20 MySQL
SQL注入篇学习之盲注/宽字节注入
Mar 03 MySQL
MySQL创建表操作命令分享
Mar 25 MySQL
详细聊一聊mysql的树形结构存储以及查询
Apr 05 MySQL
MySql分区类型及创建分区的方法
Apr 13 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之第一天
2006/10/09 PHP
PHP+DBM的同学录程序(3)
2006/10/09 PHP
PHP 文件类型判断代码
2009/03/13 PHP
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
PHP入门教程之图像处理技巧分析
2016/09/11 PHP
js中的escape及unescape函数的php实现代码
2007/09/04 Javascript
动态添加js事件实现代码
2009/03/12 Javascript
Javascript学习笔记之函数篇(六) : 作用域与命名空间
2014/11/23 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
JQuery显示隐藏页面元素的方法总结
2015/04/16 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
2016/01/05 Javascript
Javascript的无new构建实例详解
2016/05/15 Javascript
Vue.js 单页面多路由区域操作的实例详解
2017/07/17 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
python进阶教程之模块(module)介绍
2014/08/30 Python
Python中的列表知识点汇总
2015/04/14 Python
python3序列化与反序列化用法实例
2015/05/26 Python
详解Python编程中包的概念与管理
2015/10/16 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
python format 格式化输出方法
2018/07/16 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
2020/01/15 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
怎样声明一个匿名的内部类
2016/06/01 面试题
简历中求职的个人自我评价
2013/12/03 职场文书
门卫岗位安全职责
2013/12/13 职场文书
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
关键在于落实心得体会
2014/09/03 职场文书
竞选大学学委演讲稿
2014/09/13 职场文书
2014年领导班子工作总结
2014/12/11 职场文书
教师求职信怎么写
2015/03/20 职场文书
惹女朋友生气检讨书
2015/05/06 职场文书
一篇文章学会Vue中间件管道
2021/06/20 Vue.js
springBoot基于webSocket实现扫码登录
2021/06/22 Java/Android