mysql sock文件存储了什么信息

mysql.sock到底存储了什么东西?

mysql.sock作为mysql的套接字一般用于本地连接数据库,在速度上优于TCP/IP连接。一般放置在/tmp/mysql.sock目录下,我们先查看下它的内容:

[root@ tmp]# ll -i | grep mysql
    85 srwxrwxrwx 1 mysql          mysql                0 Apr 18 15:03 mysql.sock

可以看到它的内容大小为0,即没有存储任何的内容,此时我们通过mysql -uroot -p来访问(即默认的-h localhost)可以访问成功数据库。

但当我们新建一个相似的mysql.sock的时候,却无法替代原有的空文件:

mv mysql.sock mysql.sock.bak
# 创建新的mysql socket文件
mksock mysql.sock
chown mysql:mysql mysql.sock
chmod 777 mysql.sock
# 展示对比两个mysql.sock
[root@ tmp]# ll -i | grep mysql
    85 srwxrwxrwx 1 mysql          mysql                0 Apr 18 15:03 mysql.sock.bak
    37 srwxrwxrwx 1 mysql          mysql                0 Aug 20 20:35 mysql.sock

再次访问本地数据库:

[root@ tmp]# mysql -uroot -p -hlocalhost
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

两者内容除了inode号不一样外,完全一样,但却不能使用mysql访问本地数据库了,新的socket为什么不能代替原有的socket文件,这个文件到底存储了什么,又是怎么跟数据库互相认证的?

思考良久,有了自己的解释,但由于没有看linux对socket的具体设计和实现代码,不一定正确,详情查看:

https://www.jb51.net/article/255511.htm

想要看具体实现的可以参考linux源码:

https://man7.org/linux/man-pages/man7/socket.7.html

以上就是mysql sock文件存储了什么信息的详细内容,更多关于mysql sock文件存储信息的资料请关注我们其它相关文章!

(0)

相关推荐

  • 详解MySQL中的pid与socket

    socket文件:当用Unix域套接字方式进行连接时需要的文件. pid文件:MySQL实例的进程ID文件. 1.pid-file介绍 MySQL 中的 pid 文件记录的是当前 mysqld 进程的 pid ,pid 亦即 Process ID .可以通过 pid-file 参数来配置 pid 文件路径及文件名,如果未指定此变量,则 pid 文件默认名为 host_name.pid ,存放的路径默认放在 MySQL 的数据目录. 建议指定 pid 文件名及路径,pid 目录权限要对 mysql

  • mysql sock 文件解析及作用讲解

    目录 引言 连接MySQL mysql.sock文件 mysql.sock文件的作用 数据库运维:mysql.sock错误修复 引言 在观察MySQL本地连接的时候,发现对mysql.sock是个啥我不明白,于是我提出了一个问题:mysql.sock到底存了什么信息? 根据多方查资料和自我思考,我有了自己的一些认识和结论,但结论并不一定正确,欢迎大家指教. 连接MySQL 连接MySQL的操作实际上是启动一个连接进程和MySQL数据库实例进行通信,本质上属于进程间通信,而进程通信的方式有管道.命

  • mysql socket文件作用详解

    网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket,一般在配置部署mysql环境时都会在mysql的my.cnf文件中[mysqld]栈下添加上socket文件的路径,而这样做的好处是如果启用了多实例mysql时,可以通过socket文件来快速的登录mysql对应不同端口下的实例,如在一台有部署2个实例的mysql服务一个是用3306,一个是用3307端口,那么就可以通过2个不同的socket文件快速的登录 mysql -uroot -p --socket=

  • 解决xampp自启动和mysql.sock问题

    装了ubuntu好长一段时间了,都没去用,国庆的时候折腾了下,配置了一些基本的开发环境,一上手就感觉喜欢上了ubuntu,说不上为什么.为了搞本地的测试php测试环境而装了xampp,安装超简单,但是我发现它没有自启动.解决办法也很简单,通过下面的命令打开启动的资源文件: 复制代码 代码如下: x@zst:~$ cd /etc/init.d x@zst:/etc/init.d$ sudo gedit rc.local 在启动文件里加入一行代码: 复制代码 代码如下: /opt/lampp/lam

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

    在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没运

  • MySQL HandlerSocket插件安装配置教程

    一.HandlerSocket是什么?HandlerSocket是akira higuchi写的一个MySQL的插件.以MySQL Daemon Plugin的形式提供类似NoSQL的网络服务,通过这个插件,你可以直接跟MySQL后端的存储引擎做key-value式的交互,省去了MySQL上层的SQL解释.打开关闭表.创建查询计划等CPU开销. 目前使用MySQL的网站,多半同时使用Memcache作为键值缓存.虽然这样的架构极其流行,有众多成功的案例,但过于依赖Memcache,无形中让Mem

  • 深入解析mysql.sock不见的问题

    之前在网上看过好多关于mysql.sock不见的问题,并没有关注这个东西存在的意义,直到自己的mysql也出现了相同的问题.让人纠结了一把-- 复制代码 代码如下: zhouqian@zhou:~$ mysqlERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 网上好多的解决办法,可是每个人的实际情况不同,我也是把上面所有人的方法实验了一个

  • mysql sock文件存储了什么信息

    mysql.sock到底存储了什么东西? mysql.sock作为mysql的套接字一般用于本地连接数据库,在速度上优于TCP/IP连接.一般放置在/tmp/mysql.sock目录下,我们先查看下它的内容: [root@ tmp]# ll -i | grep mysql 85 srwxrwxrwx 1 mysql mysql 0 Apr 18 15:03 mysql.sock 可以看到它的内容大小为0,即没有存储任何的内容,此时我们通过mysql -uroot -p来访问(即默认的-h loc

  • MySQL数据文件存储位置的查看方法

    我们可能会有一个疑惑,那就是:当我们在本地(自己的电脑)安装完 MySQL 之后,也创建了很多的数据库啊.表啊,也存储了很多的数据啊,但是这些内容都存储到哪里了呢?特别是,当我们需要直接操作这些数据文件的时候,翻遍了整个电脑,却找不到 MySQL 的数据文件到底在哪里,这就有些坑爹啦! 在这里,教给大家一个非常简单的能够立即定位到 MySQL 数据文件的存储位置方法,即在 MySQL 客户端键入如下命令: show global variables like "%datadir%";

  • Mysql单文件存储删除数据文件容量不会减少的bug与解决方法

    MySQL的Bug之一:InnoDB ibdata1 never shrinks after data is removed 问题描述 当innodb引擎使用单个文件进行存储的时候,当对数据库中数据进行删除的时候,文件的大小并不会发生变化,意味着文件将会越来越大并且即使删除也没办法 让其释放磁盘的空间. 验证过程 创建一个测试使用的表,如下创建好t这样的一个表. 创建简单的存储过程来批量的插入数据. 查看开始前的文件的大小 当批量插入接近十万的数据后 然后进行删除操作 占用磁盘空间并未减少 解决

  • ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'

    错误信息: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 出现问题原因: 有可能是 my.cnf 配置文件中设置了 [mysqld] 的参数 socket ,而没有设置[client]的参数socket mysql.sock 文件有什么用: mysql 支持 socket 和 TCP/IP 连接.那么 mysql.sock 这个文件有什么用呢?连接local

  • MySQL的常见存储引擎介绍与参数设置调优

    MySQL常用存储引擎之MyISAM 特性: 1.并发性与锁级别 2.表损坏修复 check table tablename repair table tablename 3.MyISAM表支持的索引类型 ①.全文索引 ②.前缀索引 4.MyISAM表支持数据压缩 myisampack 限制: 版本 < MySQL5.0时默认表大小为4G 如存储达标则要修改MAX_Rows和AVG_ROW_LENGTH 版本 > MySQL5.0时默认支持为256TB 适用场景: 1.非事务形应用 2.只读类

  • Mysql文件存储图文详解

    什么是文件系统 我们知道像 InnoDB.MyIASM 这样的存储引擎都是把表存储在磁盘上的(持久化).当我们想读取数据的时候,这些存储引擎会从文件系统中把数据读出来返回给我们, 当我们想写入数据的时候,这些存储引擎会把这些数据又写回文件系统. 当然,MySQL除了存储实际的数据,还存储了一系列其他的日志,在这些也属于文件系统. 存储引擎的落盘文件地址 使用客户端与服务器建立连接之后查看这个系统变量的值就可以了: show variables like 'datadir'; 当然这个目录可以通过

  • MySQL日志文件详解

    概述 日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等.这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等.本文主要描述MySQL的各种日志文件. MySQL日志文件分类 1.错误日志(Error Log) 2.二进制日志(Binary Log & Binary Log Index) 3.通用查询日志(query log) 4.慢查询日志(slow que

随机推荐