mysqld.sock应该包含什么,为什么我不拥有它?

有谁知道为什么我的/var/run/mysqld/mysqld.sock套接字文件不会在我的电脑上时,我安装(或重新安装)的MySQL 5.1?

现在,当我尝试使用mysqld启动服务器时,出现如下错误: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) when trying to connectCan't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) when trying to connect ,但创build这个名字的空白文件(在Ubuntu的论坛上build议)是不成功的。

我有两个MySQL和Postgres服务正常,直到我刚刚升级到natty前一阵子; 我花了好几个小时在两个数据库中search,试图弄清楚发生了什么。 我可以放弃postgres,但是我不能没有MySQL的工作副本。

最奇怪的部分:我使用Kubuntu,我的理解是KDE使用mysql来存储用户权限等。我没有遇到任何奇怪的权限问题; 我可以采取这个意思(不知何故?)MySQL实际上工作?

也许这些套接字文件生活在不同的地方在纳蒂? 重新安装新鲜的OS会容易吗? 在这一点上,我愿意接受任何不会浪费我时间的build议。

一个套接字文件实际上并不包含数据,它传输它..这是一个特殊的,不同寻常的types的文件创build特殊的系统调用/命令。 这不是一个普通的文件。

它就像服务器和客户端可以用来连接和交换请求和数据的pipe道。 而且,它只在本地使用。 其重要性仅仅是作为文件系统中约定的会合位置。

创build一个普通的旧文件并将其放在该位置可能实际上会干扰创build它的服务器…从而阻止本地客户端连接到服务器。

我的build议是删除您放置在该位置的任何文件。 特殊的套接字文件是由服务器创build的。

当你指定host=localhost ,mysql客户端将尝试使用需要.sock文件的unix命名pipe道login到mysql服务器。

这可以通过指定host = 127.0.0.1来绕过。 这将使MySQL客户端使用TCP连接到服务器。

来自MySQL的文档 :

 mysql --host=127.0.0.1 --port=3306 --user=your_uname --password=your_pass 

套接字是一种特殊的伪文件,用于读写数据而不是数据存储。

套接字文件是在服务启动时创build的,当服务终止时被删除。 文件的位置在/etc/my.cnf定义如下:

 [mysqld] socket=/var/run/mysql/mysql.sock 

在我的情况下,运行mysqld_safe创build一个新的mysqld.sock文件。

 $ cd /etc/init.d/ $ mysqld_safe 

你可能不会得到及时的回应,但是如果你重新启动会话,mysqld.sock文件将会在某处。 find它

 $ sudo find / -type s | grep mysqld.sock 

我有与缺lessmysqld.sock相同的问题。 我去了包含mysql的目录,即/usr/bin在我的情况。 然后我发布了命令

 mysql mysql --host=localhost --password=whatever --port=3306 

双重mysql不是一个错字,而是一个MySQL数据库将永远存在于一个新的MySQL安装。 我不知道是否需要--host , – --password--port ,但因为它使用这些参数为我工作,我包括他们。 一旦MySQL来了,我进入用户表设置为root的密码。 一旦MySQL出现,创build丢失的套接字文件。 我希望这能帮助别人,因为我挣扎了好几天。

如果你正在使用nginx的php-fastcgi,你得到了502错误的网关错误,你必须看看你的虚拟主机configurationnginxconfiguration文件。 您必须设置或更正fastcgi_pass参数fastcgi_pass是设置nginx和php CGI之间的套接字连接的variables。

另一个问题是,二进制启动脚本可能会漏掉以下项目(重要的): nano /usr/bin/php-fastcgi

 SOCKET=/var/run/php-fastcgi/php-fastcgi.socket PIDFILE=/var/run/php-fastcgi/php-fastcgi.pid 

我的启动脚本/ usr / bin / php-fastcgi的完整内容:

 #!/bin/bash FASTCGI_USER=www-data FASTCGI_GROUP=www-data SOCKET=/var/run/php-fastcgi/php-fastcgi.socket PIDFILE=/var/run/php-fastcgi/php-fastcgi.pid CHILDREN=6 PHP5=/usr/bin/php5-cgi /usr/bin/spawn-fcgi -s $SOCKET -P $PIDFILE -C $CHILDREN -u $FASTCGI_USER -g $FASTCGI_GROUP -f $PHP5