当我打开XAMPP并单击启动MySQL按钮时,它给了我一个错误。 我刚才启动了它,但现在它不工作了。

12:19:12 PM [mysql] Attempting to start MySQL app... 12:19:12 PM [mysql] Status change detected: running 12:19:13 PM [mysql] Status change detected: stopped 12:19:13 PM [mysql] Error: MySQL shutdown unexpectedly. 12:19:13 PM [mysql] This may be due to a blocked port, missing dependencies, 12:19:13 PM [mysql] improper privileges, a crash, or a shutdown by another method 12:19:13 PM [mysql] Press the Logs button to view error logs and check 12:19:13 PM [mysql] the Windows Event Viewer for more clues 12:19:13 PM [mysql] If you need more help, copy and post this 12:19:13 PM [mysql] entire log window on the forums

以下是错误日志的内容:

2013-08-02 12:19:12 4536 [Note] Plugin 'FEDERATED' is disabled. 2013-08-02 12:19:12 f64 InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator. 2013-08-02 12:19:12 4536 [Note] InnoDB: The InnoDB memory heap is disabled 2013-08-02 12:19:12 4536 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions 2013-08-02 12:19:12 4536 [Note] InnoDB: Compressed tables use zlib 1.2.3 2013-08-02 12:19:12 4536 [Note] InnoDB: Not using CPU crc32 instructions 2013-08-02 12:19:12 4536 [Note] InnoDB: Initializing buffer pool, size = 16.0M 2013-08-02 12:19:12 4536 [Note] InnoDB: Completed initialization of buffer pool 2013-08-02 12:19:12 4536 [Note] InnoDB: Highest supported file format is Barracuda. 2013-08-02 12:19:12 4536 [Note] InnoDB: The log sequence numbers 0 and 0 in ibdata files do not match the log sequence number 1616798 in the ib_logfiles! 2013-08-02 12:19:12 4536 [Note] InnoDB: Database was not shutdown normally! 2013-08-02 12:19:12 4536 [Note] InnoDB: Starting crash recovery. 2013-08-02 12:19:12 4536 [Note] InnoDB: Reading tablespace information from the .ibd files...

最重要的错误信息在这里:

2013-08-02 12:19:12 4536 [ERROR] InnoDB: 试图打开先前打开的表空间。 以前的表空间mysql/innodb_table_stats在filepath: .\mysql\innodb_table_stats.ibd使用的是空间ID: 1。 在文件路径:.\xat\payments.ibd下无法打开空间ID: 1的表空间xat/payments

日志的其余部分:

InnoDB: Error: could not open single-table tablespace file .\xat\payments.ibd InnoDB: We do not continue the crash recovery, because the table may become InnoDB: corrupt if we cannot apply the log records in the InnoDB log to it. InnoDB: To fix the problem and start mysqld: InnoDB: 1) If there is a permission problem in the file and mysqld cannot InnoDB: open the file, you should modify the permissions. InnoDB: 2) If the table is not needed, or you can restore it from a backup, InnoDB: then you can remove the .ibd file, and InnoDB will do a normal InnoDB: crash recovery and ignore that table. InnoDB: 3) If the file system or the disk is broken, and you cannot remove InnoDB: the .ibd file, you can set innodb_force_recovery > 0 in my.cnf InnoDB: and force InnoDB to continue crash recovery here.

这些错误的原因是什么?我该如何纠正它们?


当前回答

first of all, make a backup file of your database C:\xampp\mysql\data copy this file and past it somewhere in your pc. After this open, the data file and also open the XAMPP server try to delete the files step by step one by one after deleting each file try to run the MySQL server after deleting a single file as shown in the screenshot thus your databases won't delete. if the file deletion does not work then try to copy the same files from the backup folders and repeat this until it works... this is time taking but this worked for me I have solved this in 20 minutes.

其他回答

上述解决方案对我来说都没用。然后我做了以下事情:

我删除了C:\xampp\mysql\data\目录下的所有文件,除了这个目录下的文件夹。 它工作得非常好,但我以前的数据库现在不能工作了。 所以,如果你不关心,上面会删除所有你以前的数据库在phpmyadmin。

打开C:\xampp\mysql\backup。

复制所有文件。

将它们粘贴到C:\xampp\mysql\data中。

如果Windows要求你替换某些文件,那就替换它们。

如果您的XAMPP控制窗格处于活动状态,请关闭它。

转到C:\xampp,找到xampp-control,运行它。

启动Apache,启动MySQL。


就是这样。

享受吧!

尝试以下解决方案来解决这个问题。在执行此过程之前,将数据文件夹C:\xampp\mysql\data重命名为old_data。 然后在SQL文件夹中创建一个名为data的新文件夹。 将备份C:\xampp\mysql\backup文件夹中的所有文件和文件夹复制到data文件夹中。 在最后一步中,从old_data文件夹复制ibdata1文件和test文件夹,并将其放入data文件夹中。 现在运行程序并享受吧!

我也有同样的问题。 我的xampp控制面板将启动apache而不是mysql。 问题出在iblogfile中。 当你正在运行xampp/mysql时,你的电脑重新启动,而没有正确关闭innodb引擎。 进入xampp/mysql并删除

ib_logfile0

and

ib_logfile1

现在重新启动mysql,它应该工作。

四月更新(2022年)

将mysql/data文件夹重命名为mysql/data_old 复制mysql/backup文件夹,命名为mysql/data 将所有数据库文件夹和mysql文件夹从mysql/data_old复制到mysql/data 将mysql/data_old/ibdata1文件拷贝到mysql/data文件夹中

从XAMPP控制面板启动MySQL

参考

https://www.youtube.com/watch?v=ipMedkjMupw&ab_channel=GeekyScript