一次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的安装部署
Apr 24 MySQL
MySQL 可扩展设计的基本原则
May 14 MySQL
详解MySQL数据库千万级数据查询和存储
May 18 MySQL
MySQL 视图(View)原理解析
May 19 MySQL
mysql升级到5.7时,wordpress导数据报错1067的问题
May 27 MySQL
MySQL 如何设计统计数据表
Jun 15 MySQL
mysq启动失败问题及场景分析
Jul 15 MySQL
mysql事务对效率的影响分析总结
Oct 24 MySQL
MySQL数据库10秒内插入百万条数据的实现
Nov 01 MySQL
MySQL创建定时任务
Jan 22 MySQL
MySQL外键约束(Foreign Key)案例详解
Jun 28 MySQL
MySQL常用慢查询分析工具详解
Aug 14 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的宝库目录--PEAR
2006/10/09 PHP
php addslashes和mysql_real_escape_string
2010/01/24 PHP
PHP URL路由类实例
2013/11/12 PHP
在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
2017/08/07 PHP
php基于环形链表解决约瑟夫环问题示例
2017/11/07 PHP
PHP实时统计中文字数和区别
2019/02/28 PHP
PHP回调函数简单用法示例
2019/05/08 PHP
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
jqPlot 图表中文API使用文档及源码和在线示例
2012/02/07 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
2013/07/10 Javascript
jQuery 无刷新分页实例代码
2013/11/12 Javascript
JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)
2014/10/17 Javascript
js右下角弹出提示框示例代码
2016/01/12 Javascript
表单中单选框添加选项和移除选项
2016/07/04 Javascript
JS中script标签defer和async属性的区别详解
2016/08/12 Javascript
Canvas 绘制粒子动画背景
2017/02/15 Javascript
Node.JS利用PhantomJs抓取网页入门教程
2017/05/19 Javascript
深入理解React中何时使用箭头函数
2017/08/23 Javascript
vue组件间通信子与父详解(二)
2017/11/07 Javascript
浅谈Vue SSR 的 Cookies 问题
2017/11/20 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
Python中的字符串切片(截取字符串)的详解
2019/05/15 Python
Python读取实时数据流示例
2019/12/02 Python
python实现IOU计算案例
2020/04/12 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
简单掌握CSS3中resize属性的用法
2016/04/01 HTML / CSS
html5中的一些标签学习(心得)
2016/10/18 HTML / CSS
德国旅游网站:weg.de
2018/06/03 全球购物
Joules官网:女士、男士和儿童服装和鞋类
2018/10/23 全球购物
Whistles官网:英国女装品牌
2020/08/14 全球购物
同学聚会老师邀请函
2014/01/28 职场文书
保护地球的标语
2014/06/17 职场文书
我的中国梦演讲稿500字
2014/08/19 职场文书
vue组件的路由高亮问题解决方法
2021/05/11 Vue.js
代码解析React中setState同步和异步问题
2021/06/03 Javascript