本周末,我将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是:
mysqld --install重新安装mysql服务 C:\ProgramData\MySQL\MySQL Server 5.6\my.ini有一个my.ini的副本 希望能够帮助遇到同样问题的其他人!