一次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 可扩展设计的基本原则
May 14 MySQL
MySQL之PXC集群搭建的方法步骤
May 25 MySQL
浅谈mysql返回Boolean类型的几种情况
Jun 04 MySQL
MySQL REVOKE实现删除用户权限
Jun 18 MySQL
浅谈MySQL之select优化方案
Aug 07 MySQL
mysql事务隔离级别详情
Oct 24 MySQL
浅谈如何保证Mysql主从一致
Mar 13 MySQL
MySQL派生表联表查询实战过程
Mar 20 MySQL
SQL语句多表联合查询的方法示例
Apr 18 MySQL
MySQL的存储过程和相关函数
Apr 26 MySQL
优化Mysql查询的示例
Apr 26 MySQL
MySQL事务的隔离级别详情
Jul 15 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
Discuz板块横排显示图片的实现方法
2007/05/28 PHP
php学习之 认清变量的作用范围
2010/01/26 PHP
php下过滤html代码的函数 提高程序安全性
2010/03/02 PHP
php判断电脑访问、手机访问的例子
2014/05/10 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
2016/10/19 PHP
JQuery 入门实例1
2009/06/25 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
jQuery学习笔记之toArray()
2014/06/09 Javascript
jQuery中:gt选择器用法实例
2014/12/29 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
2016/05/26 Javascript
js中通过getElementsByName访问name集合对象的方法
2016/10/31 Javascript
详解Jquery Easyui的验证扩展
2017/01/09 Javascript
web.js.字符串与正则表达式操作
2017/05/13 Javascript
Vue实现移动端左右滑动效果的方法
2018/11/27 Javascript
「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)
2019/04/08 Javascript
JavaScript 闭包的使用场景
2020/09/17 Javascript
Python内置函数之filter map reduce介绍
2014/11/30 Python
Python中类型关系和继承关系实例详解
2015/05/25 Python
使用Python保存网页上的图片或者保存页面为截图
2016/03/05 Python
python交互式图形编程实例(一)
2017/11/17 Python
微信跳一跳python辅助脚本(总结)
2018/01/11 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
行政文员岗位职责
2013/11/08 职场文书
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
个人实习生的自我评价
2014/02/16 职场文书
品牌服务方案
2014/06/03 职场文书
三方股份合作协议书
2014/10/13 职场文书
教师批评与自我批评材料
2014/10/16 职场文书
刑事上诉状(量刑过重)
2015/05/23 职场文书
花木兰观后感
2015/06/10 职场文书
离职证明范本
2015/06/12 职场文书
资深HR教你写好简历中的自我评价
2019/05/07 职场文书
python中的getter与setter你了解吗
2022/03/24 Python