MySQL问题:没有mysql.sock

3

昨天我在使用安装在我的电脑上的MySQL。
我下载了xampp,所以我在my.cnf文件中更改了套接字路径:

 /opt/lampp/var/mysql/mysql.sock  

那个文件就在那里。今天我想继续处理它,但是发现文件不见了,所以当我启动mysql服务器时会出现以下错误:

ERROR 2002 (HY000): 
Can't connect to local MySQL server through socket 
'/opt/lampp/var/mysql/mysql.sock' (2)

以下是我进行的一些测试:
mujeresponja@ubuntu:~$ ps -fea | grep mysqld
1000     15707 15615  0 16:28 pts/1    00:00:00 grep --color=auto mysqld
mujeresponja@ubuntu:~$ ps -fea | grep mysql 
1000     15709 15615  0 16:29 pts/1    00:00:00 grep --color=auto mysql

作为一种可能的解决方案,我卸载了xampp并重新安装了它,还安装了一个新的MySQL服务器,以防万一。无论如何,那个文件不再存在。
编辑: mysql.sock应该在哪里,实际上有两个文件,mysql_upgrade_info(仅包含5.5.8)和另一个名为ubuntu.err的二进制文件。
mujeresponja@ubuntu:/opt/lampp/var/mysql$ sudo cat ubuntu.err 
110403 17:28:52 mysqld_safe Starting mysqld daemon with databases from /opt/lampp/var/mysql
110403 17:28:52 [Note] Plugin 'FEDERATED' is disabled.
/opt/lampp/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
110403 17:28:52 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
InnoDB: The InnoDB memory heap is disabled
InnoDB: Mutexes and rw_locks use InnoDB's own implementation
InnoDB: Compressed tables use zlib 1.2.3
110403 17:28:52  InnoDB: Initializing buffer pool, size = 16.0M
110403 17:28:52  InnoDB: Completed initialization of buffer pool
110403 17:28:52  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name /opt/lampp/var/mysql/ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.
110403 17:28:52 mysqld_safe mysqld from pid file /opt/lampp/var/mysql/ubuntu.pid ended
110403 17:29:22 mysqld_safe Starting mysqld daemon with databases from /opt/lampp/var/mysql
110403 17:29:22 [Note] Plugin 'FEDERATED' is disabled.
/opt/lampp/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
110403 17:29:22 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
InnoDB: The InnoDB memory heap is disabled
InnoDB: Mutexes and rw_locks use InnoDB's own implementation
InnoDB: Compressed tables use zlib 1.2.3
110403 17:29:22  InnoDB: Initializing buffer pool, size = 16.0M
110403 17:29:22  InnoDB: Completed initialization of buffer pool
110403 17:29:22  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name /opt/lampp/var/mysql/ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.
110403 17:29:22 mysqld_safe mysqld from pid file /opt/lampp/var/mysql/ubuntu.pid ended

抱歉,我不知道如何以适当的方式显示终端消息在应用程序中。有人可以帮助我吗?提前感谢!

5个回答

6
您可以按照以下步骤定位实际的套接字文件并创建符号链接以引导到它:
# check path to socket from mysql settings  
mysqladmin | grep d.sock

# create a symbolic link
ln -s path_to_mysql_socket /opt/lampp/var/mysql/mysql.sock

问题在于我没有mysql.sock文件。 - Blanca Hdez
你还没有证明MySQL当前正在运行。 - BugFinder
相同的错误。在mysql.sock应该存在的地方,有两个文件mysql_upgrade_info(其中只包含5.5.8)和另一个名为ubuntu.err的二进制文件。 - Blanca Hdez
根据错误文件,您需要先运行mysql_upgrade来创建一些缺失的表格“无法打开mysql.plugin表格”。还有另一个提到缺少权限的问题:“InnoDB:该错误意味着mysqld没有访问InnoDB的权限”。 - Thierry M.S.
如何更改这些权限?尝试升级mysql时遇到新错误...使用连接参数运行'mysqlcheck':'--port=3306' '--socket=/var/run/mysqld/mysqld.sock' mysqlcheck:在尝试连接时出现错误:2002:无法通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器 致命错误:升级失败。总是与mysql.sock文件丢失有关。有没有办法找回那个文件?即使重新安装也不再存在... - Blanca Hdez
这个文件的存在将有助于证明MySQL正在运行,并且要使其运行,您需要正确安装分发版,并在启动服务之前对配置文件和二进制文件应用正确的权限。您尝试过单独安装MySQL而不是xampp吗?通过直接从单独的数据包中安装Apache、PHP和MySQL,您可能会节省一些时间。 - Thierry M.S.

1

我没有找到问题的确切原因。 我只是卸载并重新安装,然后一切都正常了。
这不是真正的解决方案,但它起作用了。祝好运


面对类似的问题,MySQL 运行良好已经很多天了,突然间 mysql.sock 文件不见了。 - pal4life

1

尽管你做的测试有点混乱,但我假设测试只是证明mysql没有运行。

根据mysql的配置方式,应该有一个启动文件,通常在/etc/rc.*目录周围,您需要运行rc.mysql start(或者在rc3.d目录中可以是


我从rc0.d到rc6.d都找过了,但是这些文件都没有。即使重新安装也是如此。 - Blanca Hdez
我仍在寻找,但没有成功。mysql.sock 应该在哪里,而实际上有两个文件 mysql_upgrade_info(其中只包含 5.5.8)和另一个名为 ubuntu.err 的二进制文件。 - Blanca Hdez
好的,现在你找到了一些需要解决的错误。它告诉你用户mysql运行时没有正确的文件/目录权限以及运行升级脚本的权限。(至于显示终端输出,请尝试将其标记为代码,这似乎至少可以将其设置为预格式化部分) - BugFinder
谢谢,我该如何更改这些权限呢? - Blanca Hdez
看一下 chmod 命令。昨天这一切都正常工作,对吧?你还记得在它正常工作之后,在你关闭机器之前发生了什么吗? - BugFinder
显示剩余5条评论

0

我曾经在向其他用户授予权限时遇到了同样的情况。Mysql试图在mysql数据库上授予权限,这引发了灾难:mysql.sock文件立即消失。

这发生在版本5.6中。


0

我曾经和你一样遇到了同样的问题,但是我找到了一些有用的信息:

2015-08-14 10:51:17 30934 [ERROR] InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1, error: 11
2015-08-14 10:51:17 30934 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.

所以,我重新启动了计算机并重新启动了XAMPP,问题得到了解决。


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