[mysql] XAMPP - MySQL shutdown unexpectedly

When I open XAMPP and click start MySQL button and it gives me an error. I had started it just before, but now it isn't working.

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

Here is the contents of the error log:

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...

The most important error message is here:

2013-08-02 12:19:12 4536 [ERROR] InnoDB:
Attempted to open a previously opened tablespace.
Previous tablespace mysql/innodb_table_stats uses space ID: 1 at filepath: .\mysql\innodb_table_stats.ibd.
Cannot open tablespace xat/payments which uses space ID: 1 at filepath: .\xat\payments.ibd

The rest of the log:

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.

What is the cause of these errors and how can I rectify them?

This question is related to mysql xampp

The answer is

STOP! Please do NOT delete ibdata1 file!

Deleting this file is like playing a Russian roulette with your databases, it could work and restablish everything, but also, probably could leave unusable every database you have.

Instead, first try using the MySQL backup folder which is included with XAMPP. So do the next:

  1. Rename the folder mysql/data to mysql/data_old (you can use any name)
  2. Create a new folder mysql/data
  3. Copy the content that resides in mysql/backup to the new mysql/data folder
  4. Copy all your database folders that are in mysql/data_old to mysql/data (skipping the mysql, performance_schema, and phpmyadmin folders from data_old)
  5. Finally copy the ibdata1 file from mysql/data_old and replace it inside mysql/data folder
  6. Start MySQL from XAMPP control panel

And, voilà!

IMPORTANT Deleting this file may render any existing MySQL data unusable. Use with caution

Hey I just did this and it worked:

  1. exit Xampp server
  2. go to your C:\xampp\mysql\data directory
  3. delete the ibdata1 file
  4. restart xampp server

It should work

  1. Go to mysql/data/
  2. Delete all random files (except the actual database folders)
  3. Restart Apache and MySQL.

It should fix it.

If the answers mentioned above are not working, you can try deleting all the files in data, except for the folder

Goto: C:\xampp\mysql\data

enter image description here

After that: Goto: C:\xampp\mysql\bin

then open with notepad my.ini , Its look like this.

enter image description here

Then delete or put into comment the port 3306 and change it to 8111 then run xamp with administrator and its work well.

When you're not running XAMPP as an administrator, shutting down MySQL frequently causes corruption which means you have to repair or delete your tables. To avoid this you need to either run XAMPP as an administrator, or use the proper command prompt method for shutting down MySQL.

You can delete ibdata1 as Kratos suggests, but this can leave you with a broken database as other pieces of your database are still in the /mysql/data/ folder. In my case, this residual data stopped me successfully installing WordPress.

A cleaner way of undoing the damage is to revert your whole /mysql/data/ folder. Windows has built-in folder versioning — right click on /mysql/data/ and select Restore previous versions. You can then delete the current contents of the folder and replace it with the older version's contents.

Addendum: To ensure that you don't forget to run XAMPP as an administrator you can right click the XAMPP shortcut, go to Properties, then Advanced, and finally tick Run as administrator.

My Xampp MySQL worked just follows as below:

01.Go to mysql/data/ directory
02. delete the ibdata1 & ib_logfile*(ib_logfile0,ib_logfile1,ib_logfile101) file
03. restart xampp server

Add the following line below the [mysqld] section in the mysql config file (my.ini) and restart the apache web server and the mysql service afterwards.

innodb_force_recovery = 4

I got the same kind of error in my C:\xampp\mysql\data\mysql_error.log when trying to start mysql.

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:  

You'll have to read the error closely. This says that test_database is preventing mysql from starting.

You could blow away the offending database, these steps fix the problem:

  1. Make sure mysql and xampp is shut down completely.
  2. Go to your directory where mysql is installed, mine is: C:\xampp\mysql\data
  3. You should see a folder with the name of a database that you created. mine was test_database.
  4. Create a new folder somewhere else called C:\xampp\mysql\data\mysql\backuptablespace
  5. Drag and drop (don't delete) the offending database table folder to the backup directory.
  6. Try to start mysql again. For me it started right up in 1 second as expected.

If it doesn't work, put the file back where you started and you'll be back where you started.

If you don't want to delete the database and don't have backups:

If you don't have backups of table data and mysql won't start because something is corrupted you'll have to use the process of elimination to guess-and-check your way to exactly what you did that corrupted it. Follow these steps:

  1. Make a clone of the entire C:\xampp\ and store it somewhere safe so you can get back to where you started.
  2. Use a "binary search" approach to try to locate the corrupted item in the mysql database. It could be a file, or a table, or a database, or a user or anything.
  3. Delete the entire database and see if that allows mysql to start. If it does, then put back the database and try removing some of the tables. If it doesn't, then try yanking out something else until it does start.
  4. Try removing these files from C:\xampp\mysql\data\mysql: db.frm db.MRD db.MYI db.opt user.frm user.MYD user.MYI

  5. When you get mysql to start, try putting things back until you find the one thing that you add which prevents it from starting. One bonus for this is you learn how mysql works under the hood.

Nuclear option:

Something you did screwed up the mysql server. An uninstall and reinstall of XAMPP should undo the corruption.

I also faced this issue and this is how I solved.
1. Make sure xampp is not under sub-directory. For example, it should be C:\xampp
2. You might need to run as administrator in running the application.

Hope this will work!

in my case i did following steps and it worked:

  1. In Xampp control panel click on "Services" button from the right side toolbar

  2. Then find "MySQL" from the services List

  3. Click on it and from the left side of the panel click on "stop"

  4. Turn back in Xampp control panel and click on start.

Here is what I did. I restarted my computer. Next I run services.msc. I stopped the MySQL service then restarted it. The restarted the Xampp server.

No solution above worked for me. then I did below:

I deleted all the files inside C:\xampp\mysql\data\ directory except folders in this directory. It worked perfectly fine but my previous databases are not working now. So do above if you don't care it will delete all your previous databases in phpmyadmin.

  1. move xampp/mysql/backup files into xampp/mysql/data
  2. RUN XAMPP as Administrator(make sure mysql is installed you can see a green tick if is installed) List item

Hope it helps!

Never delete this file (ibdata1) because all your data will be deleted!!!
I suggest three ways :

1- Exit from XAMPP control panel.
1- Rename the folder mysql/data to mysql/data_old (you can use any name)
2- Create a new folder mysql/data
3- Copy the content that resides in mysql/backup to the new mysql/data folder
4- Copy all your database folders that are in mysql/data_old to mysql/data (skipping the mysql, performance_schema, and phpmyadmin folders from data_old)
5- Finally copy the ibdata1 file from mysql/data_old and replace it inside mysql/data folder
6- Reastart your system.

1- Stop all sql services.
2- Next, start all sql services again.

enter image description here

1- Open XAMPP control panel
2- Click on Config button, in front of mysql, click on my.ini

enter image description here

3- change client port and server port.

enter image description here

i was facing the same issue and none of the solutions stated above helped me. i went to the mysql configuration file (my.ini) and changed the port number under [mysqld].By default mysql runs on 3306 port.

port= 3306

i changed it to ,

port= 8111

Then run as Administrator.Finally this worked for me.

1.end task mysqld
2.Restart mysql.

I solved similar MySQL error & I think this answer will help you to fix the same type of MySQL database error. MySQL Error on XAMPP Control panel


  • Go to the “data” directory in the mysql database.
  • I installed XAMPP on D: drive on my computer & the mysql “data” directory location of my computer was “D:\xampp\mysql\data\”. You may have different location.

Take Backup of MySQL “data” Folder

  • First of all you should create a backup of the “data” folder using any compression software.

  • Give a name like “data_backup.zip” or any type of compression you wish.

  • I used winrar compression software to compress & backup mysql “data” folder.

Rename the “data” folder

  • Rename the “data” folder to “data-oldfiles”. This is very important to rename the data directory to any new directory name.

Create a new “data” folder

  • Create a new folder and give the folder name as “data“
  • To solve the problem we need to create a new “data” directory in the mysql database.

Copy content from “backup” folder

  • Go to the “backup” folder and copy all files.
  • Paste the files from backup folder to data folder
  • Now start the MySQL database from XAMPP.
  • Your MySQL database will start properly without showing any error.

Transfer all MySQL projects Database, Data file & Log files

  • If you have many database which was used for various projects, then you have to transfer all database from “data-oldfiles” folder to “data” folder.

  • Copy all databases from the data-old files and paste to the data folder.

  • Now you have to copy the data file “ibdata1” & all log files “ib_logfile0, ib_logfile1 ” from data-old files folder to the data folder.

  • If you have many id_logiles then copied all of them.

  • Now Start MySQL from XAMPP.

  • Go to phpMyAdmin to check all databases are available & working.

  • Now start your any website project from localhost to check the MySQL database.

The Problem is solved !!

MySQL Error solved on XAMPP

  • Now you will see the problem is solved and the error message “Error: MySQL shutdown unexpectedly.” will not show again.
  • If you have any question on this issue please feel free to ask any question in the comments section.

You can read the details tutorials on the link bellow: Error: MySQL shutdown unexpectedly – Solution in 5 easy steps

You can also watch video tutorials to solve the problem:

[Solved] Error: MySQL shutdown unexpectedly

I have resolved the problem by ending the task for mysqlid on Task Manager.enter image description here

What worked for me is:

  1. First I open Logs for MySql in XAMPP panel.
  2. At the end it says you are running another instance of mysqlid in port 3306
  3. I opened my task manager(Ctrl+Shift+Esc) then find mysqlid and End the task.

Guys just make sure you dont have MySql Server installed. Because I have MySql server pre-installed and when I start mysql from xampp control panel some port conflicts are happening and its not working.. SO before starting the mysql from xampp control panel make sure mysql server is not installed. I use .net so I have installed mysql server in the Past. Uninstalling it solved my Problem....

Go to task manager And search mysqld and right click and select END TASK and refresh XAMPP

In my case in which I synced my mysql data and htdocs to dropbox, I just needed to delete the conflicted files in mysql/data folder and subfolders. The conflicted files can be identified by its names, dropbox will tell you that. It has solved the problem for me.

Config->Apache->Open httpd.conf. search for Listen or 80,update listen port to 8081 save and restart server. Oh and shutdown Skype if you have it.

For me I quit Skype, which was occupying port 80, then Apache ran happily on port 80, than I ran Skype and it picked another port this time.

if you are using MariaDB you can try this:

  1. Go to mysql/data/
  2. Rename aria_log_control to aria_log_control_old
  3. Restart "Mysql"

Make sure the system time is correct. Mine was set to the year 2040 somehow, correcting the date solved the problem.

i comment this statement in mysql/bin/my.ini


and it solve my problem. than you everyOne

For me, the problem was:

I used to hibernate my PC instead of shutting down due to the scale of the project. I was lazy enough to reopen all programs.

Before trying anything else, I recommend you to do the following simple things. Otherwise, you will be messed up your MySQL server.

  1. Open your task manager and End the XAMPP process.
  2. Re-run the XAMPP application as Administrator.

If not works,

  1. Save all unsaved programs and restart the PC.
  2. Run XAMMP as administrator.

Also, make sure to check 3306 & 5040 ports. These two ports are required to run MySQL on default settings.

Check @Ryan Williams answer to find of why it's good to run XAMPP as administrator.

I literally deleted every file from c:\xampp\mysql\data\ except my.ini and it works

This means that you already have a MySQL database running at port 3306.

In the XAMPP control panel, press the 'Config' button and after that press 'my.ini'. After this, Ctrl-F and search for '3306'. Replace any '3306' that you find with a different port number of your choice (you could choose 3307 or 3308 - I chose 2811 and it worked).

After you have replaced every location where '3306' is written, save the file and press 'Start' on the control panel again.

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. enter image description here

I had encountered the same issue, but all I had to do was close the XAMPP Control panel, go to the folder in which XAMPP is installed, find xampp-control.exe and run as administrator and then start the services.

enter image description here

Step 1 : Close Xampp controller completely
Step 2 : Open C:\xampp\mysql\backup
Step 3 : Copy all the files from backup folder
Step 4 : Open C:\xampp\mysql\data
Step 5 : Paste the all the files in data folder
Step 6 : Re-start the Xampp controller

Go to C:\xampp\mysql\backup.

Copy all files.

Paste them into C:\xampp\mysql\data.

If Windows asks you to replace some files, replace them.

If your XAMPP Control Panes is active close it.

Go to C:\xampp and find xampp-control, run it.

Start Apache, start MySQL.

That's it.


For this, you need to click on the x option under Modules Services and make MYSQL services installed. Then start the services. Here you go.

If any of the things above do not work, make a back of Xampp directory and reinstall Xampp. That surely works!

If the crash message is "mysql.exe has stopped working". Just run xampp-control.exe as administrator will solve your problem instantly.

Rename below files from mysql/data ib_logfile0 ib_logfile1 ibdata1

my.cnf innodb_buffer_pool_size to 200M as per your ram innodb_log_buffer_size to 32M

Restart your apache server

hope it helps you

I solved! deactivate UAC with msconfig before to install xampp

enter image description here

If you are getting this type of error then

Create a Back up your mysql folder from C:\xampp\mysql. Then go to C:\xampp\mysql\backup Copy all the files and paste it into C:\xampp\mysql\data.

Then from your old backup folder see for ibdata1 file you can find it in C:\xampp\mysql\data. Copy this file and paste in into C:\xampp\mysql\data.

Now restart xampp and it should work.

There are a number of things I've tried. This is the 2nd time this has happened to me. On my first time, I've to reinstall my xampp. And on the third day, mysql crashed again. I've tried everything I found on the internet. Like, innodb_flush_method=normal in my.ini file and deleting ibdata1, ib_logfile1, ib_logfile0 files, and others but none of these works. So later I tried to run xampp with admin privilege and install apache and mysql as a service as it was instructed on xampp control panel itself. After starting mysql, I read error-log again and from there I came to know that one of my databases is responsible for this. That database file won't let mysql start. So I deleted everything in the data folder and then in cmd I navigated to C:/xampp/mysql/bin path and ran these commands:

mysqld --initialize


and mysql started running again. But my databases and data are lost.

enter image description hereI also had this problem when i get this error , go xampp->mysql->data then delete all other files without folder , do not delete folders , then run xampp and start mysql

That's the more precise answer and worked for me!!!! ! A cleaner way of undoing the damage is to revert your whole /mysql/data/ folder. Windows has built-in folder versioning — right click on /mysql/data/ and select Restore previous versions. You can then delete the current contents of the folder and replace it with the older version's contents. as mentioned above by Ryan Williams.

If none of the deletion of files work then probably your mysql service is not running. Go to services.msc and start mysql service

If none of the solutions listed here didn't work for you just like me, then

  1. Go to your task manager.
  2. Go to the Services tab.
  3. Find Service named "MySQL80".
  4. Right-click on it and select "stop".
  5. Go back to XAMPP control panel and start the MySQL service.

It worked for me.

Fixed it by reinstalling the Xampp.

If you don't want to go through all the technical stuff that the other proposes.

Back up the htdocs folder then uninstall Xampp, it will ask you if you want to retain the htdocs folder, opt-out. Completely uninstall, remove the remains. The install again, copy back your backed-up htdocs folder.

you're done.

  1. Copy all files from xampp/mysql/backup/ then paste into /xampp/mysql/data/
  2. Restart mysql.

Questions with mysql tag:

Implement specialization in ER diagram How to post query parameters with Axios? PHP with MySQL 8.0+ error: The server requested authentication method unknown to the client Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver' phpMyAdmin - Error > Incorrect format parameter? Authentication plugin 'caching_sha2_password' is not supported How to resolve Unable to load authentication plugin 'caching_sha2_password' issue Connection Java-MySql : Public Key Retrieval is not allowed How to grant all privileges to root user in MySQL 8.0 MySQL 8.0 - Client does not support authentication protocol requested by server; consider upgrading MySQL client php mysqli_connect: authentication method unknown to the client [caching_sha2_password] phpMyAdmin on MySQL 8.0 Authentication plugin 'caching_sha2_password' cannot be loaded Error loading MySQLdb Module 'Did you install mysqlclient or MySQL-python?' select rows in sql with latest date for each ID repeated multiple times How to find MySQL process list and to kill those processes? Access denied; you need (at least one of) the SUPER privilege(s) for this operation Import data.sql MySQL Docker Container PDO::__construct(): Server sent charset (255) unknown to the client. Please, report to the developers Hibernate Error executing DDL via JDBC Statement Your password does not satisfy the current policy requirements MySql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) Laravel: PDOException: could not find driver Default password of mysql in ubuntu server 16.04 #1273 – Unknown collation: ‘utf8mb4_unicode_520_ci’ Job for mysqld.service failed See "systemctl status mysqld.service" Laravel Migration Error: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists SELECT list is not in GROUP BY clause and contains nonaggregated column .... incompatible with sql_mode=only_full_group_by MySQL Error: : 'Access denied for user 'root'@'localhost' Unable to start the mysql server in ubuntu How to turn on/off MySQL strict mode in localhost (xampp)? How to store Emoji Character in MySQL Database ERROR 1698 (28000): Access denied for user 'root'@'localhost' What is the meaning of <> in mysql query? The Response content must be a string or object implementing __toString(), "boolean" given after move to psql Xampp-mysql - "Table doesn't exist in engine" #1932 #1055 - Expression of SELECT list is not in GROUP BY clause and contains nonaggregated column this is incompatible with sql_mode=only_full_group_by MySQL fails on: mysql "ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded" How to insert TIMESTAMP into my MySQL table? How to create a foreign key in phpmyadmin JPA Hibernate Persistence exception [PersistenceUnit: default] Unable to build Hibernate SessionFactory PHP: Inserting Values from the Form into MySQL #1292 - Incorrect date value: '0000-00-00' WooCommerce: Finding the products in database ERROR 1067 (42000): Invalid default value for 'created_at' SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost' SQL query to check if a name begins and ends with a vowel MySQL: When is Flush Privileges in MySQL really needed? Error in MySQL when setting default value for DATE or DATETIME

Questions with xampp tag:

Xampp localhost/dashboard phpMyAdmin ERROR: mysqli_real_connect(): (HY000/1045): Access denied for user 'pma'@'localhost' (using password: NO) Is there way to use two PHP versions in XAMPP? Where to find htdocs in XAMPP Mac phpMyAdmin access denied for user 'root'@'localhost' (using password: NO) How to downgrade php from 7.1.1 to 5.6 in xampp 7.1.1? How to turn on/off MySQL strict mode in localhost (xampp)? mysqli_connect(): (HY000/2002): No connection could be made because the target machine actively refused it How to install mcrypt extension in xampp Fatal error: Uncaught Error: Call to undefined function mysql_connect() how can I enable PHP Extension intl? MySQL error - #1932 - Table 'phpmyadmin.pma user config' doesn't exist in engine XAMPP keeps showing Dashboard/Welcome Page instead of the Configuration Page How to setup FTP on xampp Laravel 5 error SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES) XAMPP - Apache could not start - Attempting to start Apache service PHP - SSL certificate error: unable to get local issuer certificate httpd-xampp.conf: How to allow access to an external IP besides localhost? XAMPP: Couldn't start Apache (Windows 10) how to create virtual host on XAMPP How to work on UAC when installing XAMPP XAMPP installation on Win 8.1 with UAC Warning How to downgrade php from 5.5 to 5.3 error running apache after xampp install XAMPP Port 80 in use by "Unable to open process" with PID 4 PHP: maximum execution time when importing .SQL data file XAMPP MySQL password setting (Can not enter in PHPMYADMIN) XAMPP Start automatically on Windows 7 startup PhpMyAdmin not working on localhost Xampp MySQL not starting - "Attempting to start MySQL service..." MySQL Database won't start in XAMPP Manager-osx How to stop VMware port error of 443 on XAMPP Control Panel v3.2.1 New xampp security concept: Access Forbidden Error 403 - Windows 7 - phpMyAdmin How to start Apache and MySQL automatically when Windows 8 comes up XAMPP - Port 80 in use by "Unable to open process" with PID 4! 12 XAMPP Object not found error how to configuring a xampp web server for different root directory XAMPP, Apache - Error: Apache shutdown unexpectedly xampp MySQL does not start XAMPP - MySQL shutdown unexpectedly Apache is not running from XAMPP Control Panel ( Error: Apache shutdown unexpectedly. This may be due to a blocked port) Port 443 in use by "Unable to open process" with PID 4 How do I use MySQL through XAMPP? Xampp Access Forbidden php Localhost : 404 not found how to get login option for phpmyadmin in xampp Apache shutdown unexpectedly How to Set user name and Password of phpmyadmin How do I test a website using XAMPP? How to get back Lost phpMyAdmin Password, XAMPP