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

当前回答

如果你正在重新安装mariadb,你必须检查mysql的旧进程是否还在运行,找到并杀死这个进程

ps ax | grep mysql

sudo kill -9 mysql

因为InnoDB会自动重启,你可以使用kill -15 如需重新安装*删除目录

sudo rm -rf /var/lib/mysql

创建一个默认的数据库结构并引导mariadb读取数据目录

sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

然后重新配置

sudo mysql_secure_installation

其他回答

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

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

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

settings。php和civil。settings。php

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

Localhost到127.0.0.1 #本地安装

我得到了以下错误:

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

它工作。

我使用127.0.0.1为-h代替localhost,一切正常。在其他情况下有什么-错误上面。

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

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

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

mysqladmin -u root -p status

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

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

这为我解决了问题。

一个快速的解决方案,为我工作:尝试使用本地ip地址(127.0.0.1)而不是'localhost'在mysql_connect()。这将“强制”php通过TCP/IP而不是unix套接字进行连接。