为什么删除位于var / lib / mysql中的db-directory对我的网站没有影响?

时间:2017-05-07 17:54:25

标签: mysql server

我不明白。每当我删除var / lib / mysql / mywebsite中mysql目录的所有内容时,我的网站仍可在任何设备或浏览器上运行而不会产生任何负面影响。如果我查看phpMyAdmin,数据库是完全空的!如果我删除整个目录(包含目录本身),它会产生影响(站点已经消失),但在使用不同的数据库恢复此目录后,旧版本将再次显示在网站上,而不是新恢复的数据库!

但如果我在phpMyAdmin中清除了同一个数据库的数据库表,它会立即影响我的网站......为什么会这样,我的Vserver上有任何类型的数据库缓存?

后:

service mysqld restart

一切正常,意味着:正确的内容/正确的数据库。

如果有人能帮助我,那会很好。

CentOS 6.9(最终版) Plesk Onyx 17.5.3更新Nr。 4 Wordpress 4.7.4(没有启用缓存/缓存插件)

2 个答案:

答案 0 :(得分:1)

在Unix上,如果一个进程有一个文件打开而另一个进程删除它,那么该进程仍然可以访问该文件 - 在所有进程关闭它之前它并没有真正消失。 mysqld进程已打开数据库文件。因此,在重新启动目录之前删除该目录不会影响数据库的内容,这会强制它重新打开所有文件。

此外,mysqld在可能的情况下将索引加载到内存中,如果不需要,则不会从文件中重新读取它们。

通常,在守护程序运行时,应避免直接操作数据库使用的文件,结果可能非常难以预测。您最好使用数据库客户端中的命令来管理数据库内容,但如果需要从文件级备份还原它,则应首先关闭该守护程序。

答案 1 :(得分:0)

在PhpMyAdmin中尝试删除数据库,或在控制台中执行。

DROP DATABASE database_name;