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

24

我正在尝试访问mysql,当我运行mysql命令时,会得到以下错误信息。

[root@ip-10-229-65-166 tpdatabase-1.8.0.28356]# mysql

ERROR 2002 (HY000): Can't connect to local MySQL server through 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 stop -bash: /etc/init.d/mysql: 没有那个文件或目录

[root@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个回答

33

你需要安装服务器软件包:

sudo yum install mysql-server
安装完成后,您需要启动该服务:
sudo service mysqld start

1
然后可能是 chkconfig mysqld on - r4d1um
我已经在Ubuntu上完成了这个操作,它显示Mariadb已经安装了? - Freedo

14
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 文件夹的权限。


在搜索了数小时后,唯一对我有效的答案。我甚至在我的Centos机器上进行了全新的mysql-server安装。 - Saqib Ahmed

7
我们在办公室中的IT系统遇到了类似的问题,使用的是相同的操作系统。实际问题是服务器空间不足。这很奇怪,但我认为如果服务器满了,文件就无法加载或出现其他问题。请确保服务器有足够的空间,否则您需要尝试删除已安装的MySQL并重新安装。祝你好运。

4

只需搜索mysqld即可,这是服务器守护进程:

find / | grep mysqld

如果您发现了它,则服务器包可能已经正确安装但没有initd脚本。为了进行测试,您可以通过手动执行上面的文件来启动mysql服务器。

1

mysql 可能已经被分别打包为客户端和服务器。请检查您的软件包仓库,确保已安装服务器。 mysql 软件包可能只是客户端。检查是否有名为 mysql-server 或类似名称的软件包。检查 mysql 软件包安装的文件列表,以查看它是否实际安装了服务器。

如果这些文件甚至不存在,那么这不是权限问题。此外,您正在以 root 用户身份运行。


已检查安装情况 mysql-server-5.0.77-4.el5_5.5.i386软件包已经安装且为最新版本 无需操作 - unleashed
该软件包安装了哪些文件? - Noufal Ibrahim
这里粘贴具体文件会太长,但我已经安装了mysql、mysql-devel和mysql-server软件包。 - unleashed
基本上,我要求你找出服务器文件安装的位置,如果“正常”的初始化脚本不存在,则找出包含它们的软件包并安装。 - Noufal Ibrahim
似乎没有mysql的init.d脚本。抱歉让您感到困惑,我只是在努力找出问题所在。我可能应该尝试下载一个mysql rpm包。 - unleashed
yum 下载并安装 rpm。 - Noufal Ibrahim

0

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。应该就可以了。


-3

在使用命令提示符上的mysql之前,请确保您正确地放置了my.cnf配置文件并将etc文件夹的权限设置为

chmod -R 777

如下列出的etc文件夹,以避免出现以下错误MySQL - ERROR 2002 (HY000):

例如/etc/my.cnf、/etc/mysql/my.cnf、$MYSQL_HOME/my.cnf [datadir]/my.cnf ~/.my.cnf


4
chmod -R 777 /etc永远不是一个好主意,这个目录包含大量系统文件,你不希望以这种方式授予所有权限。 - dxvargas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接