mysql问题:没有mysql.sock

Posted

技术标签:

【中文标题】mysql问题:没有mysql.sock【英文标题】:Mysql problem: no mysql.sock 【发布时间】:2011-07-28 15:55:04 【问题描述】:

昨天我正在使用计算机上安装的 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

(对不起,我不知道如何以适当的方式显示终端消息) 有人可以帮我吗?提前致谢!

【问题讨论】:

【参考方案1】:

您可以找到实际的套接字文件并创建一个指向它的符号链接,如下所示:

# 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文件 你还没有证明mysql当前正在运行 同样的错误。 mysql.sock 应该在哪里,而不是有两个文件 mysql_upgrade_info(仅包含 5.5.8)和另一个名为 ubuntu.err 的二进制文件 根据报错文件,需要先运行mysql_upgrade创建一些缺失的表“Can't open the mysql.plugin table”。还有一个关于缺少权限“InnoDB:错误意味着mysqld没有对InnoDB的访问权限”的提及 以及如何更改这些权限?尝试升级 mysql 我遇到了新的错误... unning 'mysqlcheck' 与连接参数:'--port=3306' '--socket=/var/run/mysqld/mysqld.sock' mysqlcheck: Got error: 2002: Can 't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) when trying to connect FATAL ERROR: Upgrade failed 总是与 mysql.sock 文件丢失有关。有没有办法找回那个文件??即使重新安装它也不存在了......【参考方案2】:

虽然您所做的测试有点乱码,但我会假设测试只是证明 mysql 没有运行。

根据 mysql 自身的配置方式,应该有一个启动文件,通常在 /etc/rc.* 目录周围,并且您需要运行 rc.mysql start(或者它可以是 S<nn>MySQL in例如一个 rc3.d 目录

【讨论】:

我有从 rc0.d 到 rc6.d 的文件,但它们都没有这些文件。甚至重新安装 如果这些目录中没有包含 mysql 的文件,那么这就是它不能自动启动的原因。我手头没有 ubunto,想查看 mysql 安装到哪个目录,但那里可能有一个启动脚本。检查 mysql 目录中有哪些文件 我还在寻找,但没有成功。 mysql.sock 应该在哪里,而不是有两个文件 mysql_upgrade_info(仅包含 5.5.8)和另一个名为 ubuntu.err 的二进制文件 去找mysql二进制文件,寻找mysqld和mysqld_safe,看看里面是否有启动/停止脚本 我想我找到了,但是: ./mysql.server start Starting MySQL 。 * 服务器退出但不更新PID文件(/opt/lampp/var/mysql/ubuntu.pid)【参考方案3】:

我没有找到问题的特定原因。 我刚刚卸载并重新安装,然后一切正常。 这不是一个真正的解决方案,但它确实有效。祝你好运

【讨论】:

面对类似的解决方案,mysql运行了这么多天,突然mysql.sock文件退出了【参考方案4】:

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

这发生在版本 5.6

【讨论】:

【参考方案5】:

我和你有同样的问题,我找到了一些有用的信息:

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,问题就解决了。

【讨论】:

以上是关于mysql问题:没有mysql.sock的主要内容,如果未能解决你的问题,请参考以下文章

MySQL调优7---参数设置

SQL基础应用

错误 mysqli::real_connect(): (HY000/2002): No such file or directory

mysql问题:没有mysql.sock

由于端口问题导致mysql服务没有起来

由于端口问题导致mysql服务没有起来