如何避免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索引篇之千万级数据实战测试
Apr 05 MySQL
MySQL kill不掉线程的原因
May 07 MySQL
MySQL 视图(View)原理解析
May 19 MySQL
MySQL中VARCHAR与CHAR格式数据的区别
May 26 MySQL
MYSQL主从数据库同步备份配置的方法
May 26 MySQL
MySql开发之自动同步表结构
May 28 MySQL
MYSQL 运算符总结
Nov 11 MySQL
mysql函数全面总结
Nov 11 MySQL
MySQL数据库中varchar类型的数字比较大小的方法
Nov 17 MySQL
解析MySQL索引的作用
Mar 03 MySQL
浅谈MySQL中的六种日志
Mar 23 MySQL
MySQL GTID复制的具体使用
May 20 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获取当前网址及域名的实现代码
2013/06/23 PHP
PHP中Memcache操作类及用法实例
2014/12/12 PHP
typecho插件编写教程(六):调用接口
2015/05/28 PHP
php简单计算年龄的方法(周岁与虚岁)
2016/12/06 PHP
php生成微信红包数组的方法
2019/09/05 PHP
PHP底层运行机制与工作原理详解
2020/07/31 PHP
javascript 对象定义方法 简单易学
2009/03/22 Javascript
js中有关IE版本检测
2012/01/04 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
jQuery实现鼠标移到元素上动态提示消息框效果
2013/10/20 Javascript
JS常用表单验证方法总结
2014/05/22 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
jQuery超酷平面式时钟效果代码分享
2020/03/30 Javascript
JS实现的倒计时效果实例(2则实例)
2015/12/23 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
关于Node.js的events.EventEmitter用法介绍
2017/04/01 Javascript
AngularJS修改model值时,显示内容不变的实例
2018/09/13 Javascript
原生JS实现简单的无缝自动轮播效果
2018/09/26 Javascript
JS代码简洁方式之函数方法详解
2020/07/28 Javascript
Python遍历目录并批量更换文件名和目录名的方法
2016/09/19 Python
用pandas按列合并两个文件的实例
2018/04/12 Python
python 不以科学计数法输出的方法
2018/07/16 Python
用Python将mysql数据导出成json的方法
2018/08/21 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
2020/06/23 Python
python如何写个俄罗斯方块
2020/11/06 Python
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
外贸公司实习自我鉴定
2013/09/24 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
给女朋友道歉的话大全
2015/01/20 职场文书
2019年入党思想汇报
2019/03/25 职场文书
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server