安装了Windows 8.1,MySQL服务消失了,所有的MySQL数据/设置都消失了

本周末,我将Windows 8工作站更新到Windows 8.1。 这是一个开发工作站,它有一个本地托pipe的用于Web开发工作的MySQL 5.6实例。

更新完成后,我发现MySQL服务没有启动…不仅如此,服务完全没了。 它不再出现在“服务”列表中。

所有的二进制文件仍然存在于C:\Program Files\MySQL\MySQL Server 5.6\bin ,但是C:\Program Files\MySQL\MySQL Server 5.6\data文件夹看起来可疑的很小… ibdata1文件较less超过100兆,而且这个工作站在InnoDB数据库表中有一些数据。

果然,一旦我手动启动MySQL服务器,它似乎已被重置为一个新的MySQL安装。 除了默认的数据库(即mysql,information_schema,performance_schema),没有数据,唯一的用户是“root”,没有密码。

我的第一个想法是在更新之前回滚到系统还原点,但不幸的是,系统还原似乎是closures的,或者所有的还原点都被8.1升级清除了。

我不知道是什么原因造成的。 这就像Windows 8.1升级“重置”MySQL安装。 我已经安装了服务并再次运行,但所有的数据呢? 它刚刚走了吗? 有一个警告本来是很好的。 也许这个职位只不过是对他人的警告( 强制性引用 ),但我仍然希望有人能给我一个线索如何恢复我的数据…

我无法解释为什么服务不见了,但是我弄清楚了数据发生了什么。

不知何故,我的my.ini文件被彻底消灭了。 一旦我得到了该文件的副本,我看到datadir值被设置为C:/ProgramData/MySQL/MySQL Server 5.6/data\

这不是C:\Program Files\MySQL\MySQL Server 5.6\data的默认位置。 但是,它是由MySQL安装设置的位置。

所以,当初始安装MySQL时,一个非默认的datadir被安装(由安装者,而不是由用户干预)。 然后,Windows 8.1升级删除了服务和my.ini文件(指向非默认数据目录),因此当MySQL重新启动时,它在默认目录中查找,什么也没find,因此所有数据都出现了失踪。

所以,总之,解决scheme是:

  1. 通过mysqld --install重新安装mysql服务
  2. 还原my.ini文件。 顺便说一句,在C:\ProgramData\MySQL\MySQL Server 5.6\my.ini有一个my.ini的副本

希望能够帮助遇到同样问题的其他人!