我不小心掉了 mysql db

5 mysql data-recovery

今天,我心不在焉,而不是删除我想要的数据库,我写了

drop database mysql;
Run Code Online (Sandbox Code Playgroud)

现在我该怎么做!?!从那以后我没有做任何其他事情,而且我还没有关闭我的会话。

幸运的是,这只是我的本地计算机,没有真实数据。我应该删除mysql数据文件夹吗?我可以撤消吗?有没有我可以做的 cmd 来修复它?没有真正的问题,我什么都吓坏了?

- 编辑 - 好的,所以它是我的服务器。幸运的是它的我的服务器而不是公司服务器。我只有网站没人访问反正。由于它是服务器,因此我每天都会转储两次很少更改的站点。我尝试使用转储脚本转储数据库,但出现错误。我觉得没问题,好几天没碰过,所以我试着用这个来恢复它

gunzip < mybackup.sql.gz | mysql
Run Code Online (Sandbox Code Playgroud)

我得到了错误

ERROR 1146 (42S02) at line 12: Table 'mysql.time_zone_name' doesn't exist
Run Code Online (Sandbox Code Playgroud)

现在我无法恢复,我该怎么办?

Tom*_*nor 10

您想要的解决方案(这应该可行)是以mysql_install_dbroot身份运行。或者dpkg-reconfigure mysql如果您是 deb/ubu 用户。

手册页说明:

mysql_install_db initializes the MySQL data directory and creates the system tables that it contains, if they do not exist.

  • 请记住,用户、权限和特权需要重做,删除 mysql 表会使它们全部消失。 (4认同)