有谁知道为什么我的/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 connect
, Can'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