如何避免mysql启动时错误及sock文件作用分析


Posted in MySQL onJanuary 22, 2022

在mysql的启动过程中有时会遇到下述错误

Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 

请问mysql.sock 这个文件到底起什么作用?

如何避免发生如此错误?

答案一、

这个mysql.sock应该是mysql的主机和客户机在同一host(物理服务器)上的时候,使用unix domain socket做为通讯协议的载体,它比tcp快。通常遇到这个问题的原因就是你的mysql server没运行起来。

看看你的 /tmp/mysql.sock 这个文件存在否?正常情况下它应该在那里的

或者用 netstat 看看结果中是否有 

Active UNIX domain sockets 

答案二、

这个文件是用于socket连接的文件。 
也就是只有你的守护进程启动起来这个文件才存在。 
但是你的mysql程序(这个程序是客户端,服务器端时mysqld)可以选择是否使用mysql.sock文件来连接(因为这个方法只适合在Unix主机上面连接本地的mysqld),对于非本地的任何类型的主机。这些在MySQL的手册(包括晏子翻译的中文版本,覆盖3.23/4.0版本)都有说明。只要看看就可以明白。 

前面朋友说不能连接,最大可能就是mysqld的这个守护进程没有启动。 

答案三、

Mysql有两种连接方式:

(1)TCP/IP

(2)socket

对mysql.sock来说,其作用是 mysql客户端程序 mysql与 mysql服务器端程序 mysqlserver处于同一台机器,发起本地连接时可用 。

例如你无须定义连接host的具体IP得,只要为空或localhost就可以。

在此种情况下,即使你改变mysql的外部port也是一样可能正常连接。

因为 你在my.ini中或my.cnf中改变端口后,mysql.sock是随每一次 mysql server启动生成的。已经根据你在更改完my.cnf后重启mysql时重新生成了一次,信息已跟着变更。

那么对于外部连接,必须是要变更port才能连接的。

找不到 mysql.sock 的处理方法

出现以下的信息:

Got an error: Connection error: Can't connect to local MySQL server through
socket '/var/lib/mysql/mysql.sock'

mysql.sock 突然消失算是常见的问题。
如果是第一次安装MySQL后运行时出现,那只要找出 mysql.sock 在哪里就可以了。

以上的信息表明

mysql.sock应该是在 /var/lib/mysql/ 下 。

如果你找了没找到就

#locate mysql.sock

就会出来了,接着你就可以

#mysqladmin -S /路径/mysql.sock -u root

如果是原来很正常的,突然有一天系统告诉你找不到mysql.sock这鬼文件了,怎么办?

那只好用/etc/rc.d/init.d/mysql restart 或者service mysql restart 重启服务

如果还不行,就先

#ps -aux|grep mysql 找mysql的进程.

#kill mysql进程号 确定全部kill光

再/etc/rc.d/init.d/mysql restart 或者service mysql restart 重启服务 

以上就是mysql启动时错误sock文件作用分析的详细内容,更多关于mysql启动错误sock作用的资料请关注三水点靠木其它相关文章!

MySQL 相关文章推荐
MySQL中你可能忽略的COLLATION实例详解
May 12 MySQL
MySQL触发器的使用
May 24 MySQL
MySQL Router实现MySQL的读写分离的方法
May 27 MySQL
详解MySQL多版本并发控制机制(MVCC)源码
Jun 23 MySQL
Mysql中调试存储过程最简单的方法
Jun 30 MySQL
SQL实现LeetCode(177.第N高薪水)
Aug 04 MySQL
MySQL七种JOIN类型小结
Oct 24 MySQL
利用JuiceFS使MySQL 备份验证性能提升 10 倍
Mar 17 MySQL
MySQL分区以及建索引的方法总结
Apr 13 MySQL
MySQL数据库 任意ip连接方法
May 20 MySQL
MySQL详细讲解变量variables的用法
Jun 21 MySQL
MySQL约束(创建表时的各种条件说明)
Jun 21 MySQL
教你使用VS Code的MySQL扩展管理数据库的方法
Jan 22 #MySQL
彻底解决MySQL使用中文乱码的方法
Jan 22 #MySQL
mysql分组后合并显示一个字段的多条数据方式
Jan 22 #MySQL
MySQL中int (10) 和 int (11) 的区别
Jan 22 #MySQL
JMeter对MySQL数据库进行压力测试的实现步骤
MySQL创建定时任务
Jan 22 #MySQL
SQL基础查询和LINQ集成化查询
Jan 18 #MySQL
You might like
无数据库的详细域名查询程序PHP版(3)
2006/10/09 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
2018/08/07 PHP
Nginx+php配置文件及原理解析
2020/12/09 PHP
删除重复数据的算法
2006/11/23 Javascript
JavaScript 函数式编程的原理
2009/10/16 Javascript
javascript计时器编写过程与实现方法
2016/02/29 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
2017/03/08 Javascript
jQuery图片瀑布流的简单实现代码
2017/03/15 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
jQuery替换节点元素的操作方法
2018/03/18 jQuery
vue-cli2.9.3 详细教程
2018/04/23 Javascript
微信小程序的部署方法步骤
2018/09/04 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
vue中多路由表头吸顶实现的几种布局方式
2019/04/12 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
vue 开发之路由配置方法详解
2019/12/02 Javascript
vue swipeCell滑动单元格(仿微信)的实现示例
2020/09/14 Javascript
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
使用PDB简单调试Python程序简明指南
2015/04/25 Python
python实现带错误处理功能的远程文件读取方法
2015/04/29 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
由Python编写的MySQL管理工具代码实例
2019/04/09 Python
python实现简单日期工具类
2019/04/24 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
2019/07/02 Python
详解numpy矩阵的创建与数据类型
2019/10/18 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
2020/02/11 Python
浅析python 定时拆分备份 nginx 日志的方法
2020/04/27 Python
Python 操作SQLite数据库的示例
2020/10/16 Python
python time.strptime格式化实例详解
2021/02/03 Python
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
2013/06/03 HTML / CSS
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
一套SQL笔试题
2016/08/14 面试题
红领巾广播站广播稿
2014/02/01 职场文书
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python
Nginx 匹配方式
2022/05/15 Servers