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

时间:2013-02-05 11:45:28

标签: mysql innodb

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

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

1.我删除了与之相关的数据库。 2.stopped mysql(/etc/init.d/mysqld stop) 3.将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。这是一个奇迹,但现在网站因为没有DB连接而无法正常工作。

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

和 - /etc/init.d/mysqld status给出 - mysqld(pid 31905)正在运行......

由于

1 个答案:

答案 0 :(得分:4)

快速修复:

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

我稍后会解释,当我有更多时间,但我认为你可能需要快速解决这个问题:)

更新:(来自评论)你无法连接,好吧,原因可能是任何。我认为最好的事情(你无论如何都没有太多松动)就是你只是杀了mysql。

待办事项

ps aux | grep mysqld

然后

kill -9 <the processnumber of mysql from the previous command>

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

我也投票决定以offtopic结束。然后它将被转移到dba.stackexchange.com,这是一个更专注于管理数据库服务器的合作伙伴站点。你可能会得到更好的帮助。