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

当前回答

我通过删除tc.log到/var/lib/mysql目录来解决,因为它在满磁盘后被腐蚀。然后,当我启动mysql时,日志文件被创建为新的。

其他回答

如果您使用的是AWS (Amazon Web Services)微型版本,则是内存问题。当我奔跑

mysql

从终端它会说

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

所以我尝试了下面的方法,但它会失败。

service mysqld restart

经过大量的搜索,我发现你必须为MySQL创建一个交换文件以获得足够的内存。说明如下:http://www.prowebdev.us/2012/05/amazon-ec2-linux-micro-swap-space.html。

然后,我可以重新启动mysqld。

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

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

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

mysqladmin -u root -p status

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

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

这为我解决了问题。

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需要很长时间加载的情况。我的一个数据库中有超过10万个表,它最终启动了,但显然在这种情况下需要很长时间。

对于那些任何方法都不起作用的人,试试:

cd /etc/mysql

检查my.cnf是否存在

nano my.cnf

确保你只有一个绑定地址,如下所示:

Bind-address = 127.0.0.1

如果没有,这可能就是问题所在,只需退出nano并保存文件。

启动mysql服务

注意,如果你没有nano(它是一个文本编辑器),只要用apt-get install nano安装它,然后按Ctrl+X退出,不要忘记按Y保存并使用相同的文件)