我的VPS硬件故障,在过去的24小时内我被停止使用。 现在它已经恢复,MySQL拒绝工作。 请记住,具有这些确切configuration的VPS在过去的2个月内一直运行正常,没有任何错误代码/数据库设置,因为硬件故障。
在命令行中,只需input“sudo mysql”即可
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
我无法loginPhpMyAdmin,我收到2错误:
#2002 Cannot log in to the MySQL server Connection for controluser as defined in your configuration failed.
我的networking应用程序(Codeigniter)返回以下错误
A Database Error Occurred Unable to connect to your database server using the provided settings. Filename: core/Loader.php Line Number: 346
我在Ubuntu 10.04上运行一个典型的LAMP堆栈。 我的硬盘上有足够的可用空间(剩余20个以上),所以空间不足是不成问题的。
/var/log/mysql.err没有任何内容,它是一个空文件。 我已经在谷歌上search了很多,但现在似乎已经完全丧失了。
编辑:
运行mysqld给了我
mysqld: Can't find file: './mysql/plugin.frm' (errno: 13) 120630 18:41:10 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 120630 18:41:10 InnoDB: Initializing buffer pool, size = 8.0M 120630 18:41:10 InnoDB: Completed initialization of buffer pool 120630 18:41:10 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.
起初,现在正在运行mysqld ,我什么也得不到,只是返回给我的提示。
编辑2:运行strace -e trace=file mysqld返回:
120630 19:17:12 [Note] Plugin 'FEDERATED' is disabled. open("./mysql/plugin.frm", O_RDONLY) = -1 EACCES (Permission denied) mysqld: Can't find file: './mysql/plugin.frm' (errno: 13) 120630 19:17:12 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. open("/tmp/ibzhYSAn", O_RDWR|O_CREAT|O_EXCL, 0600) = 1 unlink("/tmp/ibzhYSAn") = 0 open("/tmp/ibRf9302", O_RDWR|O_CREAT|O_EXCL, 0600) = 1 unlink("/tmp/ibRf9302") = 0 open("/tmp/ibN6AjrI", O_RDWR|O_CREAT|O_EXCL, 0600) = 1 unlink("/tmp/ibN6AjrI") = 0 120630 19:17:12 InnoDB: Initializing buffer pool, size = 8.0M 120630 19:17:12 InnoDB: Completed initialization of buffer pool open("/tmp/ibGh8aSn", O_RDWR|O_CREAT|O_EXCL, 0600) = 1 unlink("/tmp/ibGh8aSn") = 0 open("./ibdata1", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists) open("./ibdata1", O_RDWR) = -1 EACCES (Permission denied) 120630 19:17:12 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.
如果日志文件是空的,尝试手动启动mysqld ,字面上只需在terminal运行mysqld 。
它应该自动获取你的configuration文件(例如/etc/my.cnf或/etc/mysql/my.cnf )并运行它。
之后,你应该有明显的错误,以解决您的问题。 如果你也把它们写入你原来的问题,我们可以进一步提供帮助。 问题可能出在主机上:即使您还没有达到您的分配,内存不足或物理磁盘空间不足。
另外,我的2美分: 暴发是废物,当东西失败。 当我有MySQL的问题,我已经得到这些“已经运行”的消息,即使没有一个单一的mysql[d] – 所以现在就忽略它。
你可以检查你的数据目录吗? 听起来就像崩溃已经损坏了它,你已经失去了一些文件。 通常是/var/lib/mysql 。
.cnf文件,他们应该是什么)? ibdata1 ,这个权限怎么样? 如果你有备份,使用它们可能是个好主意。
检查/var/log/daemon.log在mysqld中的启动错误。 你有一个不让MySQL启动的问题,很可能。
grep mysql /var/log/daemon.log应该给你一个相关的错误信息列表。 回复日志投诉。