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

当前回答

当您使用localhost连接到MySQL时,操作系统使用套接字连接器。但是,如果您使用127.0.0.1 IP地址,操作系统将使用TCP/IP连接器。因此,当您遇到套接字连接器的问题时,一个可能的解决方案是通过指定127.0.0.1 IP地址而不是localhost来尝试使用TCP/IP建立连接。

其他回答

我得到了以下错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)

尝试了几种方法,最终通过以下方法解决:

sudo gksu gedit /etc/mysql/my.cnf

修改:

#bind-address       = 127.0.0.1

to:

bind-address        = localhost

并重新启动:

sudo /etc/init.d/mysql restart

它工作。

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

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

添加

--protocol=tcp 

跟你联系的那些偷车贼都对我有用。

如果一切正常,并且您刚刚开始看到这个错误,在执行其他操作之前,请确保您没有耗尽磁盘空间:

df -h

如果卷所在的mysql。sock is being created是在100%使用,MySql将无法创建它,这将是这个错误的原因。你需要做的就是删除一些不需要的东西,比如旧的日志文件。

这个问题有很多解决方案,但对于我的情况,我只需要纠正机器/服务器上的日期(Ubuntu 16.04服务器)。

i)检查服务器的日期并改正。

ii) 运行 sudo /etc/init.d/mysql restart

这样就可以开始了。