缺少/var/lib/mysql/mysql.sock文件

时间:2011-04-14 09:26:28

标签: mysql linux unix amazon-ec2

我正在尝试访问mysql,当我运行mysql命令时,我得到以下内容。

  

[根@ IP-10-229-65-166   tpdatabase-1.8.0.28356] #mysql

     

ERROR 2002(HY000):无法连接   本地MySQL服务器通过socket   '/var/lib/mysql/mysql.sock'(2)

这样做不会返回任何内容

  

[root @ ip-10-229-65-166 mysqld] #find   -name mysql *

     

[root @ ip-10-229-65-166 mysqld]#   /etc/init.d/mysql停止   -bash:/etc/init.d/mysql:没有这样的文件或目录

     

[根@ IP-10-229-65-173   tpdatabase-1.8.0.28356] #mysql_config   | grep - --socket

     

- socket [/var/lib/mysql/mysql.sock]

也许是权限问题?

我确实使用 yum install mysql

安装了mysql

我在Amazon EC2云实例上运行CentOS 5.4

8 个答案:

答案 0 :(得分:29)

您需要安装服务器包:

sudo yum install mysql-server

安装后,您必须启动该服务:

sudo service mysqld start

答案 1 :(得分:5)

我的办公室设置中遇到了类似的操作系统问题。实际发生的事情是服务器上的空间不足。这很奇怪,但我相信如果服务器满了,文件无法加载或其他一些手段。请检查以确保服务器上的空间足够您必须尝试删除已安装的mysql并重新安装。祝你好运。

答案 2 :(得分:5)

rm -rvf /var/lib/mysql/ib_logfile*
touch /var/lib/mysql/mysql.sock
touch /var/lib/mysql/mysql.pid
chown -R mysql:mysql /var/lib/mysql
systemctl restart mysql

试试这个并检查/var/lib/mysql/mysql.sock和/ tmp

的权限

答案 3 :(得分:4)

只搜索mysqld,这是服务器守护程序:

find / | grep mysqld

如果找到了,可以正确安装服务器软件包但不使用initd脚本。对于测试,您可以手动执行上述文件来启动mysql服务器。

答案 4 :(得分:1)

mysql可能已单独打包为客户端和服务器。检查软件包存储库以确保已安装服务器。 mysql包可能只是客户端。检查是否有一个名为mysql-server的包或类似的包。检查mysql包安装的文件列表,看它是否实际安装了服务器。

如果文件不存在,则不是权限问题。此外,您以root身份运行。

答案 5 :(得分:0)

我最近在Ubuntu 18.04上升级后遇到此问题。这里的解决方案解决了https://serverfault.com/a/957723/439448

答案 6 :(得分:0)

确保您具有访问/var/lib/mysql/mysql.sock文件的特权。并且如果仍然出现错误,请使用

创建一个默认的my.cnf文件。
[client]
socket = /path/to/mysql/data/mysql.sock
[mysqld]
server-id = 2
socket = /path/to/mysql/data/mysql.sock
port = 4000 #any port you wish
basedir = /path/to/mysql
datadir = /path/to/mysql/data

,然后再次初始化数据库。初始化时,请确保输入--defaults-file=/path/to/mysql/my.cnf。如果出现错误提示/path/to/mysql/data中存在文件,请删除它们,然后重试。完成后,当您还运行mysql时,请输入--defaults-file=/path/to/mysql/my.cnf。 应该可以。

答案 7 :(得分:-2)

在命令提示符下命中mysql之前,请确保放置正确的my.cnf configuration file并将etc文件夹的权限设置为

chmod -R 777

等文件夹如下表所示,以避免

  

错误MySQL - ERROR 2002(HY000):   例如/etc/my.cnf,/etc/mysql/my.cnf, $ MYSQL_HOME / my.cnf [datadir] /my.cnf~ / .my.cnf