我有一个大问题试图连接到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]

当前回答

这并没有直接回答你的问题,而是它的一个子集,即使用PythonAnywhere。在寻找解决方案时,我一直在无意中遇到这个问题,所以我在这里添加了它,希望它能帮助其他处于我这种情况的人。


PythonAnywhere决定更改数据库连接主机名,以提高效率和可靠性,详情如下:

用于连接您的帐户的正式主机名 MySQL数据库实例由MySQL更改。服务器 yourusername.mysql.pythonanywhere-services.com。这绕过了我们的基础设施的一部分,最近开始出现问题 几周,它应该比旧的更有效和可靠 道路

因此,您需要将主机名更新为上面突出显示的值。

其他回答

如果你的my.cnf文件(通常在/etc/mysql/文件夹中)正确配置了:

socket=/var/lib/mysql/mysql.sock

可以使用以下命令检查mysql是否正在运行:

mysqladmin -u root -p status

尝试更改mysql文件夹的权限。如果你在当地工作,你可以尝试:

sudo chmod -R 755 /var/lib/mysql/

这为我解决了问题。

我还发现这是一个权限问题。我将MySQL文件与工作安装(都在Debian 6 squeeze上)进行了比较,并不得不进行以下所有权更改(其中mydatabase是您拥有的任何数据库)。

所有权mysql: mysql:

chown mysql:mysql /var/lib/mysql
chown mysql:mysql /var/lib/mysql/ib*
chown mysql:mysql /var/lib/mysql/mydatabase
chown mysql:mysql /var/lib/mysql/mydatabase/*
chown mysql:mysql /var/lib/mysql/mysql/* 

所有权mysql:根:

chown mysql:root /var/lib/mysql/mysql
chown mysql:root /var/run/mysqld 

所有权mysql: adm:

chown mysql:adm /var/log/mysql
chown mysql:adm /var/log/mysql.err
chown mysql:adm /var/log/mysql.log* 

我得到这个错误是因为我正在运行MAMP,而我的.sock文件在不同的位置。我只是在应用程序认为应该指向实际位置的地方添加了一个符号链接,效果很好。

这对我来说已经足够好了

sudo /etc/init.d/mysql restart

如果有人在寻找初始化错误

无法连接数据库/var/run/mysql/mysql.sock

当运行民事管理和drupal时,只需在

settings。php和civil。settings。php

只有在你试图建立数据库连接的地方

Localhost到127.0.0.1 #本地安装