我有一个大问题试图连接到mysql。当我跑步时:

/usr/local/mysql/bin/mysql start

我有以下错误:

Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38)

我有mysql。Sock在/var/mysql目录下。

在/etc/my.cnf中,我有:

[client]
port=3306
socket=/var/mysql/mysql.sock

[mysqld]
port=3306
socket=/var/mysql/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M

在/etc/php.ini中有:

; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
mysql.default_socket = /var/mysql/mysql.sock

我已经使用sudo /opt/local/apache2/bin/apachectl restart重启apache

但还是有误差。

否则,我不知道这是否相关,但当我执行mysql_config——sockets时,我得到

--socket         [/tmp/mysql.sock]

当前回答

有很多潜在的问题会导致这个错误。正如另一个回答中所建议的,最好的方法是检查日志文件。这可以在不同的位置找到,这取决于平台。对我来说,它位于/var/log/mysqld.错误是“设备上没有剩余空间”。在做了一些清理之后,我可以启动服务,问题就解决了。

其他回答

我已经删除了mysql。袜子锉成功了。给它加上版权根本没用。既不是重启,也不是别的……

我有同样的问题,这是由mysql服务器运行时更新mysql驱动程序引起的。 我修复了它,只是重新启动mysql和apache2:

Sudo service mysql stop Sudo服务mysql启动 Sudo服务apache2停止 Sudo服务apache2启动

您可能希望检查硬盘是否已满(控制台上的df),这就是最终触发此错误的原因。

在我的情况下,解决方案是我安装了mariadb,它的别名是mysql。所以所有与mysql相关的服务命令都不被识别…我只需要:

service mariadb start

另外:

chkconfig mariadb on

就我而言,我使用的是Centos 5.5。我发现这个问题是因为mysql服务以某种方式停止了。 所以我启动mysql服务的命令:

 /etc/init.d/mysqld start

所以. .愚蠢的错误。