一次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 Router实现MySQL的读写分离的方法
May 27 MySQL
浅谈mysql返回Boolean类型的几种情况
Jun 04 MySQL
探究Mysql模糊查询是否区分大小写
Jun 11 MySQL
SQL实现LeetCode(176.第二高薪水)
Aug 04 MySQL
MySQL配置主从服务器(一主多从)
Aug 07 MySQL
MYSQL 的10大经典优化案例场景实战
Sep 14 MySQL
mysql中如何用命令创建联合唯一索引
Apr 20 MySQL
Mysql将字符串按照指定字符分割的正确方法
May 30 MySQL
MySQL选择合适的备份策略和备份工具
Jun 01 MySQL
MySQL实现字段分割一行转多行的示例代码
Jul 07 MySQL
MySQL提升大量数据查询效率的优化神器
Jul 07 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
冰滴咖啡制作步骤
2021/03/03 冲泡冲煮
php绘图中显示不出图片的原因及解决
2014/03/05 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
PHP如何开启Opcache功能提升程序处理效率
2020/04/27 PHP
js实现ASP分页函数 HTML分页函数
2006/09/22 Javascript
把textarea中字符串里含有的回车换行替换成<br>的javascript代码
2007/04/20 Javascript
文本框水印提示效果的简单实现代码
2014/02/22 Javascript
JavaScript基于setTimeout实现计数的方法
2015/05/08 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
2015/08/24 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
js创建jsonArray传输至后台及后台全面解析
2016/04/11 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
微信小程序--组件(swiper)详细介绍
2017/06/13 Javascript
Vue 组件间的样式冲突污染
2017/08/31 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
2017/11/17 Javascript
JS中的BOM应用
2018/02/02 Javascript
Vue-router 切换组件页面时进入进出动画方法
2018/09/01 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
2019/09/26 Javascript
微信小程序如何实现精确的日期时间选择器
2020/01/21 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
2020/06/05 Javascript
Python+django实现简单的文件上传
2016/08/17 Python
老生常谈Python序列化和反序列化
2017/06/28 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
python实现AHP算法的方法实例(层次分析法)
2020/09/09 Python
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
一帮一活动总结
2014/05/08 职场文书
意向协议书
2015/01/27 职场文书
杭州黄龙洞导游词
2015/02/10 职场文书
教学督导岗位职责
2015/04/10 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
小学家庭教育心得体会
2016/01/14 职场文书
MySQL8.0.24版本Release Note的一些改进点
2021/04/22 MySQL
CSS中理解层叠性及权重如何分配
2022/12/24 HTML / CSS
html解决浏览器记住密码输入框的问题
2023/05/07 HTML / CSS