XAMPP – MySQL意外closures
当我打开XAMPP并点击启动MySQLbutton,它给了我一个错误。 我刚刚开始,但现在不工作。
12:19:12 PM [mysql]试图启动MySQL应用程序…
12:19:12 PM [mysql]检测到状态改变:正在运行
12:19:13 PM [mysql]检测到状态变化:停止
12:19:13 PM [mysql]错误:MySQL意外关机。
12:19:13 PM [mysql]这可能是由于端口被阻塞,缺less依赖关系,
12:19:13 PM [mysql]不正确的权限,崩溃或者其他方法关机
12:19:13 PM [mysql]按Logsbutton查看错误日志并检查
12:19:13 PM [mysql] Windows事件查看器获取更多线索
12:19:13 PM [mysql]如果你需要更多的帮助,请复制并发布这个
12:19:13 PM [mysql]整个日志窗口在论坛上
这里是错误日志的内容:
2013-08-02 12:19:12 4536 [注]插件'FEDERATED'被禁用。
2013-08-02 12:19:12 F64 InnoDB:警告:使用innodb_additional_mem_pool_size是DEPRECATED。 这个选项可能会在将来的版本中被删除,以及选项innodb_use_sys_malloc和InnoDB的内部内存分配器。
InnoDB:InnoDB内存堆被禁用
InnoDB:Mutexes和rw_locks使用Windows互锁function
2013-08-02 12:19:12 4536 [注意] InnoDB:压缩表使用zlib 1.2.3
2013-08-02 12:19:12 4536 [注意] InnoDB:不使用CPU crc32指令
2013-08-02 12:19:12 4536 [注意] InnoDB:初始化缓冲池,大小= 16.0M
InnoDB:完成缓冲池的初始化
2013-08-02 12:19:12 4536 [注] InnoDB:支持最高的文件格式是梭子鱼。
InnoDB:ibdata文件中的日志序列号0和0与ib_logfiles!中的日志序列号1616798不匹配。
2013-08-02 12:19:12 4536 [注意] InnoDB:数据库没有正常关机!
2013-08-02 12:19:12 4536 [注意] InnoDB:启动崩溃恢复。
InnoDB:读取.ibd文件中的表空间信息…
最重要的错误信息是:
2013-08-02 12:19:12 4536 [错误] InnoDB:
试图打开一个以前打开的表空间。
以前的tablespace mysql / innodb_table_stats在filepath: 。\ mysql \ innodb_table_stats.ibd中使用空间ID:1。
无法在filepath: 。\ xat \ payments.ibd中打开使用空间ID为1的表空间xat / payments
日志的其余部分:
InnoDB:错误:无法打开单表表空间文件。\ xat \ payments.ibd
InnoDB:我们不会继续崩溃恢复,因为表可能会变成
InnoDB:如果我们无法将InnoDB日志中的日志logging应用到InnoDB中,则会损坏。
InnoDB:解决问题并启动mysqld:
InnoDB:1)如果文件存在权限问题,mysqld不能
InnoDB:打开文件,你应该修改权限。
InnoDB:2)如果表不需要,或者你可以从备份中恢复,
InnoDB:那么你可以删除.ibd文件,而InnoDB会做一个正常的
InnoDB:崩溃恢复并忽略该表。
InnoDB:3)如果文件系统或磁盘损坏,无法删除
InnoDB:.ibd文件,你可以在my.cnf中设置innodb_force_recovery> 0
InnoDB:强制InnoDB在这里继续崩溃恢复。
这些错误的原因是什么?如何纠正?
嘿,我只是这样做,它的工作:
- 退出 Xampp服务器
- 转到您的
C:\xampp\mysql\data
目录 - 删除
ibdata1
文件 - 重新启动 xampp服务器
它应该工作
在mysqlconfiguration文件(my.ini)的[mysqld]
部分下面添加下面一行,然后重启apache web服务器和mysql服务。
[mysqld] innodb_force_recovery = 4
- 去mysql / data /
- 删除所有的随机文件(除了实际的数据库文件夹)
- 重新启动Apache和MySQL 。
它应该修复它。
在尝试启动mysql时,我在C:\xampp\mysql\data\mysql_error.log
遇到了同样的错误。
2013-08-05 01:20:32 6780 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace mysql/slave_relay_log_info uses space ID: 3 at filepath: .\mysql\slave_relay_log_info.ibd. Cannot open tablespace test_database/test_table which uses space ID: 3 at filepath: .\test_database\test_table.ibd
你必须仔细阅读错误。 这说test_database
是防止启动mysql。
你可以吹走违规的数据库,这些步骤解决了这个问题:
- 确保mysql和xampp完全closures。
- 转到您安装mysql的目录,我的是:
C:\xampp\mysql\data
- 您应该看到一个名称为您创build的数据库的文件夹。 我的是
test_database
。 - 在其他地方创build一个名为
C:\xampp\mysql\data\mysql\backuptablespace
的新文件夹 - 将有问题的数据库表文件夹拖放(不要删除)到备份目录。
- 尝试再次启动MySQL。 对我来说,如预期的那样,在1秒钟内开始。
如果不起作用,请将文件放回原来的位置,然后返回到开始位置。
如果您不想删除数据库并且没有备份:
如果你没有表数据的备份,并且mysql不会启动,因为某些东西被破坏了,你将不得不使用消除的过程来猜测你的方式,确切地说,你做了什么损坏它。 按着这些次序:
- 整个
C:\xampp\
的克隆,并将其存储在一个安全的地方,以便您可以回到你开始的地方。 - 使用“二进制search”的方法来试图find在mysql数据库中损坏的项目。 它可以是文件,表格,数据库,或用户或任何东西。
- 删除整个数据库,看看是否允许mysql启动。 如果是这样,那么把数据库放回去,尝试删除一些表。 如果没有,那么尝试一下其他的东西,直到它开始。
-
尝试从
C:\xampp\mysql\data\mysql
删除这些文件:db.frm db.MRD db.MYI db.opt user.frm user.MYD user.MYI -
当你启动mysql的时候,试着把东西放回去,直到你发现你添加的东西阻止它启动。 其中一个好处就是你可以学习到mysql如何工作。
核select:
你搞砸了MySQL服务器。 卸载并重新安装XAMPP应该消除损坏。
我也面临这个问题,这就是我解决问题的方法。
1.确保xampp不在子目录下。 例如,它应该是C:\ xampp
2.您可能需要以pipe理员身份运行应用程序。
希望这会工作!
当你没有以pipe理员身份运行XAMPP时,经常closuresMySQL会导致损坏,这意味着你必须修复或删除你的表。 为了避免这种情况,您需要以pipe理员身份运行XAMPP,或者使用正确的命令提示符方法closuresMySQL。
你可以按照Kratos的build议删除ibdata1
,但是这可能会导致数据库损坏,因为其他数据库仍在/mysql/data/
文件夹中。 在我的情况下,这个残留数据阻止了我成功安装WordPress。
清除损坏的一种更简单的方法是恢复整个/mysql/data/
文件夹。 Windows具有内置的文件夹版本控制 – 右键单击/mysql/data/
并selectRestore previous versions
。 然后,您可以删除文件夹的当前内容,并将其replace为旧版本的内容。
附录:为了确保您不要忘记以pipe理员身份运行XAMPP,您可以右键单击XAMPP快捷方式,转至Properties
,然后selectAdvanced
,最后Run as administrator
。
我的Xampp MySQL的工作如下:
01.Go to mysql/data/ directory 02. delete the ibdata1 & ib_logfile*(ib_logfile0,ib_logfile1,ib_logfile101) file 03. restart xampp server
configuration – > Apache->打开httpd.conf。 searchListen或80,更新监听端口为8081保存并重启服务器。 哦,并closuresSkype,如果你有。
确保系统时间正确。 不知怎的,我的地雷被设定为2040年,纠正了date解决了这个问题。
这是我做的。 我重新启动了我的电脑。 接下来我运行services.msc。 我停止了MySQL服务,然后重新启动它。 重新启动Xampp服务器。
对于我来说,我放弃了占用80端口的Skype,然后Apache在80端口上快乐地跑,比我跑Skype的时候多了一个端口。
在我的情况下,我同步我的mysql数据和htdocs到dropbox,我只需要删除mysql / data文件夹和子文件夹中冲突的文件。 冲突的文件可以通过它的名字来标识,dropbox会告诉你。 它已经解决了我的问题。
为此,您需要单击Modules Services下的x选项,并安装MYSQL服务。 然后开始服务。 干得好。
上面没有解决scheme为我工作。 那我下面做了:
我删除了C:\ xampp \ mysql \ data \目录下的所有文件,除了这个目录下的文件夹。 它工作得很好,但我以前的数据库现在不工作。 所以如果你不在乎,会在phpmyadmin中删除所有以前的数据库。
如果崩溃消息是“mysql.exe已停止工作”。 只要以pipe理员身份运行xampp-control.exe即可解决您的问题。
如果以上任何一种情况都不起作用,请重新安装Xampp目录并重新安装Xampp。 那肯定有效!