【问题标题】:why mysql will not restart / get affected if ibdata1 file is moved?如果 ibdata1 文件被移动,为什么 mysql 不会重新启动/受到影响?
【发布时间】:2013-02-05 20:34:26
【问题描述】:

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

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

1.我删除了与之相关的数据库。 2.停止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.这是一个奇迹,但由于没有数据库连接,现在网站无法运行。

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

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

谢谢

【问题讨论】:

    标签: mysql innodb


    【解决方案1】:

    快速修复:

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

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

    更新:(来自 cmets)您无法连接,好吧,原因可能是任何原因。我认为最好的办法(反正你没有什么可放松的)就是干脆杀死 mysql。

    ps aux | grep mysqld
    

    然后

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

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

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

    【讨论】:

    • 即使停止 mysql 也会失败。我查看了错误日志,发现'[wrapped: connect failed [Native Error: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)]'
    • 我终止了进程并尝试重新启动服务器。但它既没有开始也没有停止。我更改了mysql目录的文件权限,然后它开始了(chmod -R 0777)。
    • 我还有另一个问题。我看到 2 个 ibdata1 文件。可能是一个旧备份!...位置是 /root/mysql/ibdata1 /var/lib/mysql/ibdata1 ..有什么方法可以知道哪个 ibdata1 处于活动状态?
    • /root/mysql 下的文件不是标准 mysql 安装的一部分。必须是您的备份或其他东西。我建议您在 dba.stackexchange.com 上询问有关此问题的更多问题。有关管理的问题已得到解答。这里的stackoverflow是针对编程问题的。你会在那里得到更好的帮助。
    猜你喜欢
    • 2019-07-17
    • 2020-03-05
    • 1970-01-01
    • 2018-05-11
    • 2016-09-22
    • 1970-01-01
    • 2016-07-08
    • 2020-02-24
    • 1970-01-01
    相关资源
    最近更新 更多