本文共 1139 字,大约阅读时间需要 3 分钟。
sock 在IT里直白的翻译就是网络套接字,插座。当然,也可以理解为一种网络通讯协议,该协议支持tcp,udp,ICMP网络传输。sock在web开发没有普及框架的时代,是必会的一种网络连接方式,自有框架后,这一偏向底层的网络通信方式由框架处理了,大部分时间开发人员不需要手动处理sock的流程。socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。也就是说,该层在tcp的三层之间。
那么。这个文件的作用是什么呢?socket屏蔽了各个协议的通信细节,使得程序员无需关注协议本身,直接使用socket提供的接口来进行互联的不同主机间的进程的通信。这就好比操作系统给我们提供了使用底层硬件功能的系统调用,通过系统调用我们可以方便的使用磁盘(文件操作),使用内存,而无需自己去进行磁盘读写,内存管理。socket其实也是一样的东西,就是提供了tcp/ip协议的抽象,对外提供了一套接口,同过这个接口就可以统一、方便的使用tcp/ip协议的功能了。简单的说,不同主机间的程序间的通信接口文件,有文件才有接口,才可以程序间互相传递消息。这是一个抽象的文件。
大家都知道,Linux下的tmp文件夹下存放的都是临时文件,而有些有点特殊癖好(洁癖)的人会时不时的清理下临时文件,MySQL的安装方式又比较多,如果是二进制安装,或者编译安装,很可能默认socket文件就存放在tmp文件夹内了,这就尴尬了,对吧。怎么解决这样的问题?很简单,改变存放socket文件的位置就好了,想放哪就放哪,多自由、
更改方式为,第一,关闭MySQL服务,通常命令为 service mysql stop 或者,systemctl stop mysql。
第二,vim /etc/my.cnf 在【mysql】标签(这个标签是表示本地客户端)和【mysqld】(这个标签是表示服务器端)标签下,增加字段,socket=/var/lib/mysql/mysql.sock,这里我是假设我想更改的路径是/var/lib/mysql/mysql.sock。
第三,更改该路径属组为mysql,命令为:chown -R mysql:mysql /var/lib/mysql第三步是最重要的,必须属组是mysql。
第四,service mysql restart 或者 systemctl restart mysql
总结:在此提醒,这个socker文件属性是s标识加满权限,表明这就是一个套接文件。
更改路径在/etc/my.cnf文件的mysqld标签和mysql标签下更改。
转载地址:http://tmkr.baihongyu.com/