2018/02/03

MAMP Pro-г зүй бус унтрааснаас болж MySQL эвдрэх

Mamp PRO ашиглах явцад компьютерийн цэнэг дуусах, мэтээр сервисийг зогсоолгүйгээр унтрааснаас болж дараа нь MySQL-ийн ямар нэг хүснэгтийн файлд эвдрэл гарч, сервис эхлэхгүй алдаа гарах тохиолдолд гардаг. Алдааны логийг уншихад:

2018-02-03 22:50:43 1754 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace cms_db/auth uses space ID: 1 at filepath: ./green_cms_db/auth.ibd. Cannot open tablespace mysql/innodb_table_stats which uses space ID: 1 at filepath: ./mysql/innodb_table_stats.ibd
2018-02-03 22:50:43 7fffb2fdb3c0 InnoDB: Operating system error number 2 in a file operation.
InnoDB: The error means the system cannot find the path specified.
InnoDB: If you are installing InnoDB, remember that you must create
InnoDB: directories yourself, InnoDB does not create them.
InnoDB: Error: could not open single-table tablespace file ./mysql/innodb_table_stats.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.
180203 22:50:43 mysqld_safe mysqld from pid file /Applications/MAMP/tmp/mysql/mysql.pid ended
180203 23:26:39 mysqld_safe Logging to '/Applications/MAMP/logs/mysql_error.log'.

гэсэн мэдээлэл бичигдсэн байв. Нэгэн ачтай буянтай хүн дараах зааврыг бэлдсэн байсныг олж үзээд дагаж хийснээр асуудлаас ангижрав бололтой.

1. Stop servers in MAMP
2. Navigate to the .idb files for your WP DB - if using MAMP, should be somewhere like ~/Library/Application Support/appsolute/MAMP PRO/db/mysql56/[yourdbname]/
Add .bk (or any unrecognizable extension) to the end of the .idb filenames
3. Create a temporary folder somewhere handy; select all the .idb files and move them into that folder.
4. Stop servers in MAMP
5. Drop the .bk (or whatever you used) from the .idb file names
6. Move the files back into the original folder from Step 2.