一次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优化之如何写出高质量sql语句
May 17 MySQL
MySQL中distinct与group by之间的性能进行比较
May 26 MySQL
MySQL子查询中order by不生效问题的解决方法
Aug 02 MySQL
MySQL修炼之联结与集合浅析
Oct 05 MySQL
mysql中int(3)和int(10)的数值范围是否相同
Oct 16 MySQL
Mysql忘记密码解决方法
Feb 12 MySQL
MySQL七大JOIN的具体使用
Feb 28 MySQL
Arthas排查Kubernetes中应用频繁挂掉重启异常
Feb 28 MySQL
Mysql使用全文索引(FullText index)的实例代码
Apr 03 MySQL
MySql分区类型及创建分区的方法
Apr 13 MySQL
mysql中如何用命令创建联合唯一索引
Apr 20 MySQL
mysql字段为NULL索引是否会失效实例详解
May 30 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
我的群发邮件程序
2006/10/09 PHP
php配置php-fpm启动参数及配置详解
2013/11/04 PHP
php使浏览器直接下载pdf文件的方法
2013/11/15 PHP
PHP中使用memcache存储session的三种配置方法
2014/04/05 PHP
php实现mysql备份恢复分卷处理的方法
2014/12/26 PHP
php身份证号码检查类实例
2015/06/18 PHP
php三元运算符知识汇总
2015/07/02 PHP
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
checkbox勾选判断代码分析
2014/06/11 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
2015/06/23 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
js简单的分页器插件代码实例
2019/09/11 Javascript
JS实现百度搜索框关键字推荐
2020/02/17 Javascript
JavaScript cookie原理及使用实例
2020/05/08 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
python生成随机图形验证码详解
2017/11/08 Python
Django Web开发中django-debug-toolbar的配置以及使用
2018/05/06 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
Django实现微信小程序的登录验证功能并维护登录态
2019/07/04 Python
选择Python写网络爬虫的优势和理由
2019/07/07 Python
Django Rest framework解析器和渲染器详解
2019/07/25 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
解决html5中的video标签ios系统中无法播放使用的问题
2020/08/10 HTML / CSS
加拿大建筑和装修专家:Reno-Depot
2017/12/21 全球购物
StubHub中国:购买和出售全球活动门票
2020/01/01 全球购物
应届毕业生个人求职信范文
2014/01/29 职场文书
抽奖活动主持词
2014/03/31 职场文书
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers