纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

MySQL启动导致事故 一次MySQL启动导致的事故实战记录

K8sCat   2021-09-14 我要评论
想了解一次MySQL启动导致的事故实战记录的相关内容吗,K8sCat在本文为您仔细讲解MySQL启动导致事故的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:mysql启动事故,mysql启动失败,mysql启动不起来,下面大家一起来学习吧。

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启动导致事故内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


相关文章

猜您喜欢

  • Python性能分析工具pyinstrument Python性能分析工具pyinstrument提高代码效率

    想了解Python性能分析工具pyinstrument提高代码效率的相关内容吗,somenzz在本文为您仔细讲解Python性能分析工具pyinstrument的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Python性能分析工具,pyinstrument提高代码效率,下面大家一起来学习吧。..
  • Java 线程安全 Java中关于线程安全的三种解决方式

    想了解Java中关于线程安全的三种解决方式的相关内容吗,威斯布鲁克.猩猩在本文为您仔细讲解Java 线程安全的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Java,线程安全,Java,线程同步,下面大家一起来学习吧。..

网友评论

Copyright 2020 www.moon-script.com 【月光下载】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式