![如果服务器关闭,MySQL 数据库会损坏吗?](https://linux22.com/image/1578868/%E5%A6%82%E6%9E%9C%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%85%B3%E9%97%AD%EF%BC%8CMySQL%20%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BC%9A%E6%8D%9F%E5%9D%8F%E5%90%97%EF%BC%9F.png)
假设,客户端浏览器正在访问我的网站,数据在它和我的后端 MySQL 服务器之间流动。此时,服务器端的超级用户发出了计划外的系统关闭或计划的 cron 作业,导致 LAMP 堆栈(即 Apache、PHP-FQM 和 MySQL 服务器)重新启动。这会损坏 MySQL 数据库吗?
在这种情况下,什么做法最好?
答案1
这不应该引起任何问题,原因有二:
如果发出了关闭/重启命令,则会向数据库服务器发送信号,以使其在关闭之前恢复正常状态。
现代数据库(和文件系统) - 包括现代版本的 MySQL 都有一个日志系统,可以确保在突然断电/关机时保持一致性。
警告 - 此答案假设批准正确 - 即,如果更改需要作为单个块写入,则使用事务,并且/或者数据库具有适当的一致性约束。 (如果所有内容都没有写入,则会回滚)。 编写不当的应用程序和数据库架构可能会编写部分更改,这可能会导致应用程序级别的错误,因为如果数据的关系假设因某些正在写入的数据而无效 - 但这在技术上也不是数据损坏。