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的主要内容,如果未能解决你的问题,请参考以下文章
错误 mysqli::real_connect(): (HY000/2002): No such file or directory