如果 ibdata1 文件被移动,为什么 mysql 不会重新启动/受到影响?

Man*_*mar 1 mysql innodb

在我的服务器上托管了两个网站(比如 abc.com 和 test.xyz.com)

我正在尝试为 test.xyz.com 和在此过程中重建数据库

1.我删除了与之相关的数据库。2.stopped mysql (/etc/init.d/mysqld stop) 3.moved ibdata1 文件 (/var/lib/mysql/ibdata1) 到 /tmp/ 4. 尝试启动 mysql

但它没有开始,在尝试使用终端连接到数据库时,我得到Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'.

我试图将 ibdata1 文件从 /tmp/ 移回 /var/lib/mysql 但已经有一个文件 ibdata1. 这是一个奇迹,但现在网站无法正常工作,因为没有数据库连接。

这两个站点现在都停止工作了。请帮忙

并且- /etc/init.d/mysqld 状态给出- mysqld (pid 31905) 正在运行...

谢谢

fan*_*nts 5

快速解决:

  • 停止你的服务器
  • 删除/var/lib/mysql中新建的ibdata1文件。该文件不存在时会自动创建。另请注意,它很可能包含服务器上所有数据库的数据。
  • 将 ibdata1 从您的 tmp 文件夹复制回 /var/lib/mysql
  • 再次启动服务器

稍后我会解释,当我有更多时间时,但我认为您可能迫切需要快速修复:)

更新:(来自评论)您无法连接,好吧,这可能是任何原因。我认为最好的办法(无论如何你都没有什么可放松的)就是你简单地杀死 mysql。

ps aux | grep mysqld
Run Code Online (Sandbox Code Playgroud)

然后

kill -9 <the processnumber of mysql from the previous command>
Run Code Online (Sandbox Code Playgroud)

然后按照我之前说的去做。永远不要再简单地移动 ibdata1 :)

我也投票关闭作为offtopic。然后它将被移至 dba.stackexchange.com,这是一个更致力于管理数据库服务器的合作伙伴站点。你可能会在那里得到更好的帮助。