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 throughsocket '/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 重启做事