一次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 05 MySQL
MySQL Router的安装部署
Apr 24 MySQL
MySQL时间设置注意事项的深入总结
May 06 MySQL
MySql开发之自动同步表结构
May 28 MySQL
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
Jul 01 MySQL
Mysql如何实现不存在则插入,存在则更新
Mar 25 MySQL
MySQL Server层四个日志的实现
Mar 31 MySQL
MySQL事务操作的四大特性以及并发事务问题
Apr 12 MySQL
MySQL数据库之内置函数和自定义函数 function
Jun 16 MySQL
MySQL详细讲解变量variables的用法
Jun 21 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
创建配置文件 用PHP写出自己的BLOG系统 2
2010/04/12 PHP
PHP中Date()时间日期函数的使用方法小结
2011/04/20 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
2016/05/17 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
php生成静态页面并实现预览功能
2019/06/27 PHP
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
Bootstrap Table使用整理(四)之工具栏
2017/06/09 Javascript
webpack学习教程之publicPath路径问题详解
2017/06/17 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
2017/07/13 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
JavaScript轮播停留效果的实现思路
2018/05/24 Javascript
微信小程序实现自定义picker选择器弹窗内容
2020/05/26 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
Vue实现页面添加水印功能
2019/11/09 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
angular *Ngif else用法详解
2020/12/15 Javascript
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
Python安装官方whl包和tar.gz包的方法(推荐)
2017/06/04 Python
python如何读取bin文件并下发串口
2019/07/05 Python
使用django实现一个代码发布系统
2019/07/18 Python
利用Python校准本地时间的方法教程
2019/10/31 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
HTML5 canvas基本绘图之文字渲染
2016/06/27 HTML / CSS
JDO的含义
2012/11/17 面试题
第一范式(1NF)、第二范式(2NF)和第三范式(3NF)之间的区别是什么?
2016/04/28 面试题
委托与事件是什么关系?为什么要使用委托
2014/04/18 面试题
金融专业个人求职信范文
2013/11/28 职场文书
党支部书记岗位责任制
2014/02/11 职场文书
学校节能减排方案
2014/06/13 职场文书
忠诚教育心得体会
2014/09/03 职场文书
2014年汽车销售工作总结
2014/12/01 职场文书
2015年城管个人工作总结范文
2015/04/20 职场文书
圣诞晚会主持词
2015/07/01 职场文书