一次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 msi版本下载安装图文详细教程
May 21 MySQL
MySQL 常见存储引擎的优劣
Jun 02 MySQL
MySQL不使用order by实现排名的三种思路总结
Jun 02 MySQL
新手入门Mysql--概念
Jun 18 MySQL
MySQL 四种连接和多表查询详解
Jul 16 MySQL
Mysql实现简易版搜索引擎的示例代码
Aug 30 MySQL
mysql的数据压缩性能对比详情
Nov 07 MySQL
MySQL数据库实验实现简单数据库应用系统设计
Jun 21 MySQL
Mysql中的触发器定义及语法介绍
Jun 25 MySQL
MySQL导致索引失效的几种情况
Jun 25 MySQL
MySql统计函数COUNT的具体使用详解
Aug 14 MySQL
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
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学习之数组的定义和填充
2011/04/17 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
Yii中的cookie的发送和读取
2016/07/27 PHP
php中引用符号(&)的使用详细介绍
2016/12/06 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
2013/12/14 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
2016/05/07 Javascript
实现JavaScript的组成----BOM和DOM详解
2016/05/18 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
基于WebUploader的文件上传js插件
2016/08/19 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
vue iview实现动态路由和权限验证功能
2018/04/17 Javascript
jQuery实现导航样式布局操作示例【可自定义样式布局】
2018/07/24 jQuery
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
vue生命周期的探索
2019/04/03 Javascript
基于JavaScript实现猜数字游戏代码实例
2020/07/30 Javascript
Python实现的多进程和多线程功能示例
2018/05/29 Python
对Python中Iterator和Iterable的区别详解
2018/10/18 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
德购商城:德国进口直邮商城
2017/06/13 全球购物
高一历史教学反思
2014/01/13 职场文书
霸王洗发水广告词
2014/03/14 职场文书
公司请假条格式
2014/04/11 职场文书
2014年社区教育工作总结
2014/12/02 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
2021/05/28 Python
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技