由于datadir更改,mysql数据库丢失

时间:2015-10-21 09:35:53

标签: mysql options

我在localhost上有一个数据库数据库。今天我发现数据库DB(架构)丢失了。我很确定我没有对DROP或DELETE做任何事情。

现在,我的情况是这样的:

我的设置文件my.ini位于C:\ProgramData\MySQL\MySQL Server 5.6\并设置为datadir=C:/ProgramData/MySQL/MySQL Server 5.6/

但我运行SHOW GLOBAL VARIABLES LIKE 'datadir';,我仍然得到C:\Program Files\MySQL\MySQL Server 5.6

为什么会这样?

我使用的是mysql 5.6.26和Windows 7系统。

非常感谢!

1 个答案:

答案 0 :(得分:1)

最后我知道为什么,问题解决了。我昨天搜索了很多,但没有找到一个全面的答案。所以我在这里提出我的解决方案并希望它会有所帮助。

此问题的关键是MySQL找不到我的数据库DB的目录:C:\ProgramData\MySQL\MySQL Server 5.6\。这可能导致我遇到的初始错误1045 access denied for user 'aaa' ...,因为MySQL在C:\Program Files\MySQL\MySQL Server 5.6\中使用了另一个用户'aaa'不完全存在的数据库。我不知道为什么会发生这种情况,而现在解决方案对我来说非常简单。

首先,检查数据库的位置。这可以通过搜索硬盘上的数据库名称来完成。如果数据库的目录与SHOW GLOBAL VARIABLES LIKE 'datadir';的输出不同,则问题与我的完全相同。

然后Windows中的解决方案如下:

  1. sc delete mysql删除mysql服务。
  2. mysqld --install MySQL --defaults-file="C:\ProgramData\MySQL\MySQL Server X.Y\my.ini"重新安装mysql服务,其中X.Y是MySQL的版本。当然,您应该确保您的my.ini文件位于该目录中。或者您可以自己更改目录。
  3. 我想这个想法也适用于Linux。只需重新安装mysql服务并重置my.ini目录。

    就是这样。希望这可能会有所帮助。感谢。