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

当前回答

CentOS 7, 64位。新的安装。 在我的例子中,这个错误是因为我没有安装正确的MySQL服务器和MySQL客户端。 使用yum,我删除了mariadb和mysql社区版。我从MySQL官方网站下载了客户端和服务器的rpm,并安装了服务器和客户端。

在安装服务器时,我看到一条消息,MySQL root帐户的密码存储在一个文件中,我可以用sudo cat /root/.mysql_secret查看。

所以在安装客户端和服务器后,我用命令sudo service MySQL status检查MySQL是否正常工作(我想我在这样做之前重新启动了),我得到了结果。

MySQL运行(2601)[OK]

我使用.mysql_secret文件中的密码登录MySQL: mysql -uroot -pdxM01Xfg3DXEPabpf。注意,dxM01Xfg3DXEPabpf是.mysql_secret文件中提到的密码。

然后在mysql提示符下输入以下命令修改root的密码:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('somePassword');

从那以后,一切都很顺利。

其他回答

我有这个套接字错误,它基本上归结为MySQL没有运行。如果您运行一个新的安装,请确保您安装了1)系统包和2)面板安装程序(mysql.prefPane)。面板安装程序将允许你进入你的系统首选项并打开MySQL,然后让一个实例运行。

请注意,在重新安装时,我需要重置我的计算机以使更改正确生效。在重新启动之后,我得到了一个新的实例,并且能够毫无问题地打开到localhost的连接。

同样值得注意的是,我显然已经安装了以前版本的MySQL,但已经删除了面板,这使得它很容易为mac用户运行MySQL实例。

关于这个重新安装的过程有一个很好的链接:http://www.coolestguyplanettech.com/how-to-install-php-mysql-apache-on-os-x-10-6/

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

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

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

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

这样就可以开始了。

我刚刚遇到了这个问题。经过一天的检查,我终于得到了答案,mysql。sock文件在MariaDB启动时创建,在MariaDB关闭时删除。如果MariaDB不运行,它就不存在。 也许你没有安装MariaDB。 你可以按照下面的说明操作: https://www.linode.com/docs/databases/mariadb/how-to-install-mariadb-on-centos-7 最好的

这对我来说已经足够好了

sudo /etc/init.d/mysql restart