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

当前回答

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

其他回答

你确定你安装了MySQL和MySQL服务器吗?

例如,要安装MySQL服务器,我将使用yum或apt安装MySQL命令行工具和服务器:

yum -y install mysql mysql-server (or apt-get install mysql mysql-server)

启动MySQL服务:

/sbin/chkconfig mysqld on

启动MySQL服务器:

/sbin/service mysqld start

然后设置MySQL root密码:

mysqladmin -u root password 'new-password' (with the quotes)

我得到这个错误是因为我正在运行MAMP,而我的.sock文件在不同的位置。我只是在应用程序认为应该指向实际位置的地方添加了一个符号链接,效果很好。

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

试试这个命令:

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

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

在我的情况下,解决方案是我安装了mariadb,它的别名是mysql。所以所有与mysql相关的服务命令都不被识别…我只需要:

service mariadb start

另外:

chkconfig mariadb on

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