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

当前回答

sudo service mysql start

这应该对你很有用。有可能您更改了一些影响mysql配置的命令。

其他回答

sudo service mysql start

这应该对你很有用。有可能您更改了一些影响mysql配置的命令。

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

 /etc/init.d/mysqld start

所以. .愚蠢的错误。

当我为我的文件设置cron job时,我得到了这个错误。我将文件的权限更改为777,但它仍然不适合我。最后我找到了解决办法。也许它会对其他人有帮助。

试试这个命令:

mysql -h 127.0.0.1 -P 3306 -u root -P

记住-h表示主机,-P表示端口,-P表示密码。

编辑配置文件/etc/mysql/my.cnf:

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

我还发现这是一个权限问题。我将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*