mysql 套接字问题

mysql 套接字问题

每当我尝试运行 mysql 时都会出现以下错误:

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

我做了一些研究,发现这是因为文件 mysqld.sock 不存在。我做了一个

ps -elf | grep mysql

找不到正在运行的 mysql。然后我做了

service mysql start

然后它就冻结了(从未启动过)我最终 ^C 退出了它,然后

service mysql status

它说mysql正在运行,但是当我运行

ps -elf | grep mysql

它再次什么也没有显示。然后我停止 mysql 服务,它再次挂起,所以我使用 ^C 来停止它,当我检查状态时,它正确地显示状态为已停止。我非常尴尬地迷茫,不知道接下来该怎么做。以下是我的错误日志文件中的最新消息:

111227 18:07:42 [ERROR] /usr/sbin/mysqld: Can't open file: './wordpress/wp_7_rg_form_view.frm' (errno: 24)
111227 21:37:43 [Note] /usr/sbin/mysqld: Normal shutdown

111227 21:37:43 [Note] Event Scheduler: Purging the queue. 0 events
111227 21:37:45  InnoDB: Starting shutdown...
111227 21:37:48  InnoDB: Shutdown completed; log sequence number 0 4272160105
111227 21:37:48 [Note] /usr/sbin/mysqld: Shutdown complete

111227 21:40:33 [Note] Plugin 'FEDERATED' is disabled. /usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
111227 21:40:33 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
111227 21:40:33  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 ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.

以下是我的 my.cnf 文件(的一部分):

[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice            = 0

[mysqld]
transaction-isolation=READ-COMMITTED
user            = mysql
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /storageContainer/mysql
tmpdir          = /tmp

如果您需要更多信息,请告诉我...理论上我们需要让 mysql 重新启动并运行,而不会丢失任何数据...

附注:我也检查过了,我们只有 1 个 mysql-server 实例。

答案1

错误行应该会对您有所帮助:MySQL 无法打开文件,然后在执行某些恶意操作之前停止。因此,请检查为什么无法打开这些文件。./wordpress/wp_7_rg_form_view.frm 和 ./mysql/plugin.frm 应该存在并且对 MySQL 可写。通常它们位于 Linux 中的 /var/lib/mysql 文件夹中(在您的情况下为 /storageContainer/mysql)。如果它们存在,请检查权限。您是否在此服务器上进行了某些更改?如果 MySQL 丢失了这样的文件,则可能也存在硬件问题。

相关内容