mysql 由于数据目录更改导致数据库丢失
mysql database missing due to datadir change
我在本地主机上有一个数据库 DB。今天发现数据库DB(schema)不见了。我很确定我没有对 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
为什么会这样?
我用的是mysql5.6.26和Windows7系统。
非常感谢!
终于知道原因了,问题解决了。我昨天在谷歌上搜索了很多,但没有找到一个全面的答案。所以我在这里给出我的解决方案,希望它会有所帮助。
这个问题的关键点是 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中的解法如下:
- 通过
sc delete mysql
删除 mysql 服务。
- 通过
mysqld --install MySQL --defaults-file="C:\ProgramData\MySQL\MySQL Server X.Y\my.ini"
重新安装 mysql 服务,其中 X.Y
是 MySQL 的版本。当然,您应该确保您的 my.ini
文件位于该目录中。或者您可以自己更改目录。
我想这个想法也适用于 Linux。只需重新安装 mysql 服务并重置 my.ini
.
的目录即可
就是这样。希望这会有所帮助。谢谢。
我在本地主机上有一个数据库 DB。今天发现数据库DB(schema)不见了。我很确定我没有对 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
为什么会这样?
我用的是mysql5.6.26和Windows7系统。
非常感谢!
终于知道原因了,问题解决了。我昨天在谷歌上搜索了很多,但没有找到一个全面的答案。所以我在这里给出我的解决方案,希望它会有所帮助。
这个问题的关键点是 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中的解法如下:
- 通过
sc delete mysql
删除 mysql 服务。 - 通过
mysqld --install MySQL --defaults-file="C:\ProgramData\MySQL\MySQL Server X.Y\my.ini"
重新安装 mysql 服务,其中X.Y
是 MySQL 的版本。当然,您应该确保您的my.ini
文件位于该目录中。或者您可以自己更改目录。
我想这个想法也适用于 Linux。只需重新安装 mysql 服务并重置 my.ini
.
就是这样。希望这会有所帮助。谢谢。