XAMPP - MySQL shutdown unexpectedly

前端 未结 30 1717
长情又很酷
长情又很酷 2020-11-22 09:42

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]

30条回答
  •  名媛妹妹
    2020-11-22 10:26

    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:  
      .\test_database\test_table.ibd
    

    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.

提交回复
热议问题