一次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
SQL实现LeetCode(176.第二高薪水)
Aug 04 MySQL
MySQL 1130异常,无法远程登录解决方案详解
Aug 23 MySQL
mysql分组后合并显示一个字段的多条数据方式
Jan 22 MySQL
面试提问mysql一张表到底能存多少数据
Mar 13 MySQL
MySQL优化及索引解析
Mar 17 MySQL
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
Mar 23 MySQL
MySQL RC事务隔离的实现
Mar 31 MySQL
MySQL磁盘碎片整理实例演示
Apr 03 MySQL
MySQL 语句执行顺序举例解析
Jun 05 MySQL
MySQL深分页问题解决思路
Dec 24 MySQL
MySQL索引失效十种场景与优化方案
May 08 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 include,include_once,require,require_once
2008/09/05 PHP
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
php实现简单爬虫的开发
2016/03/28 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
php实现微信企业转账功能
2018/10/02 PHP
phpstorm 配置xdebug的示例代码
2019/03/31 PHP
php实现QQ小程序发送模板消息功能
2019/09/18 PHP
解决tp5在nginx下修改配置访问的问题
2019/10/16 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
限制复选框的最大可选数
2006/07/01 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2013/12/17 Javascript
js获取元素相对窗口位置的实现代码
2014/09/28 Javascript
jQuery中Form相关知识汇总
2015/01/06 Javascript
JavaScript获取按钮所在form表单id的方法
2015/04/02 Javascript
让图片跳跃起来  javascript图片轮播特效
2016/02/16 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
jQuery电话号码验证实例
2017/01/05 Javascript
canvas绘制表盘时钟
2017/01/23 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
2018/03/07 Javascript
写gulp遇到的ES6问题详解
2018/12/03 Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
2019/05/21 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
2019/07/12 Javascript
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
[01:32:10]NAVI vs VG Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
Python中super的用法实例
2015/05/28 Python
Python中生成Epoch的方法
2017/04/26 Python
详解Python对JSON中的特殊类型进行Encoder
2019/07/15 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
基于opencv实现简单画板功能
2020/08/02 Python
Lookfantastic意大利官网:英国知名美妆购物网站
2019/05/31 全球购物
环卫工作汇报材料
2014/10/28 职场文书
三好学生主要事迹材料
2015/11/03 职场文书
2016特色励志班级口号
2015/12/24 职场文书
七年级上册生物的课件
2019/08/07 职场文书