简体   繁体   English

Mamp不会启动mysql服务器(mac)

[英]Mamp won't start mysql server (mac)

I had mamp up and running (wordpress) and was having no issues. mamp up and running(wordpress)并没有问题。 Then suddenly the server went down, and hasn't started again. 然后服务器突然停机,并没有再次启动。 Their are some other threads about this topic, but I haven't been able to get it figured out. 他们是关于这个主题的其他一些主题,但我还没有弄明白。 I have confirmed that there are no mysql processes going.... this is my mysql_error_log : 我已经确认没有mysql进程....这是我的mysql_error_log:

161201 01:04:22 mysqld_safe Starting mysqld daemon with databases from /Applications/MAMP/db/mysql56
2016-12-01 01:04:23 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2016-12-01 01:04:23 0 [Note] /Applications/MAMP/Library/bin/mysqld (mysqld 5.6.33) starting as process 49478 ...
2016-12-01 01:04:23 49478 [Warning] Setting lower_case_table_names=2 because file system for /Applications/MAMP/db/mysql56/ is case insensitive
2016-12-01 01:04:23 49478 [Note] Plugin 'FEDERATED' is disabled.
2016-12-01 01:04:23 49478 [Note] InnoDB: Using atomics to ref count buffer pool pages
2016-12-01 01:04:23 49478 [Note] InnoDB: The InnoDB memory heap is disabled
2016-12-01 01:04:23 49478 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2016-12-01 01:04:23 49478 [Note] InnoDB: Memory barrier is not used
2016-12-01 01:04:23 49478 [Note] InnoDB: Compressed tables use zlib 1.2.8
2016-12-01 01:04:23 49478 [Note] InnoDB: Using CPU crc32 instructions
2016-12-01 01:04:23 49478 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2016-12-01 01:04:23 49478 [Note] InnoDB: Completed initialization of buffer pool
2016-12-01 01:04:23 49478 [Note] InnoDB: Highest supported file format is Barracuda.
2016-12-01 01:04:23 49478 [Note] InnoDB: The log sequence numbers 0 and 0 in ibdata files do not match the log sequence number 9969064 in the ib_logfiles!
2016-12-01 01:04:23 49478 [Note] InnoDB: Database was not shutdown normally!
2016-12-01 01:04:23 49478 [Note] InnoDB: Starting crash recovery.
2016-12-01 01:04:23 49478 [Note] InnoDB: Reading tablespace information from the .ibd files...
2016-12-01 01:04:23 49478 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace mysql/slave_worker_info uses space ID: 5 at filepath: ./mysql/slave_worker_info.ibd. Cannot open tablespace wordpress/wp_term_taxonomy which uses space ID: 5 at filepath: ./wordpress/wp_term_taxonomy.ibd
2016-12-01 01:04:23 7fffc52a43c0  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 ./wordpress/wp_term_taxonomy.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.
161201 01:04:23 mysqld_safe mysqld from pid file /Applications/MAMP/tmp/mysql/mysql.pid ended

It means one of your tables is corrupted. 这意味着您的一个表已损坏。 Weirdly this has happened to frequently upon a machine crash. 奇怪的是,这经常发生在机器崩溃时。 This is how I fixed it: 这就是我修复它的方法:

  1. open my.cnf (in MAMP > File > Edit Template > MySQL) 打开my.cnf(在MAMP中>文件>编辑模板> MySQL)
  2. add the line: innodb_force_recovery = 1 添加行:innodb_force_recovery = 1
  3. save and start servers 保存并启动服务器

The table will likely still be broken, but mysql should start. 该表可能仍会被破坏,但mysql应该开始。 It means you may have to replace your table: wp_term_taxonomy 这意味着您可能必须替换您的表:wp_term_taxonomy

Note: If innodb_force_recovery = 1 does not work, try going up in numbers: innodb_force_recovery = 2 (etc) But tread carefully. 注意:如果innodb_force_recovery = 1不起作用,请尝试上升数字:innodb_force_recovery = 2(等)但请谨慎行事。 Here's MySQL's warning on this setting: https://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html 这是MySQL对此设置的警告: https//dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html

All your MAMP databases are stored in separate folders at /Library/Application Support/appsolute/MAMP PRO/db/mysql56/ . 您的所有MAMP数据库都存储在/ Library / Application Support / appsolute / MAMP PRO / db / mysql56 /的单独文件夹中。 According to your error log there's a problem with ./wordpress/wp_term_taxonomy.ib – that is, the table term_taxonomy in the database wordpress . 根据你的错误日志中有一个与./wordpress/wp_term_taxonomy.ib一个问题-那就是,在数据库的WordPressterm_taxonomy。 One way to solve this is to simply delete all traces of that database – I hope you have a copy from before it got corrupted to restore it from. 解决这个问题的一种方法是简单地删除该数据库的所有痕迹 - 我希望你在它被破坏之前有一个副本来恢复它。 This is how you delete it: 这是你删除它的方式:

  1. Quit the MAMP server. 退出MAMP服务器。

  2. Delete the database folder and its contents – in your case the database name is wordpress : 删除数据库文件夹及其内容 - 在您的情况下,数据库名称是wordpress

     $ rm -r /Library/Application\\ Support/appsolute/MAMP\\ PRO/db/mysql56/wordpress 
  3. Delete the three InnoDB files ib_logfile0 , ib_logfile1 , and ibdata1 . 删除三个InnoDB文件ib_logfile0ib_logfile1ibdata1 Fear not; 不要怕; fresh copies will be created next time you start MySQL from within MAMP. 下次从MAMP中启动MySQL时,将创建新的副本。

     $ rm /Library/Application\\ Support/appsolute/MAMP\\ PRO/db/mysql56/ib_logfile0 $ rm /Library/Application\\ Support/appsolute/MAMP\\ PRO/db/mysql56/ib_logfile1 $ rm /Library/Application\\ Support/appsolute/MAMP\\ PRO/db/mysql56/ibdata1 
  4. Start the MAMP server. 启动MAMP服务器。

I was able to get this working by navigating to /Applications/MAMP/db/mysql56 and deleting the folders for the databases that I created. 我能够通过导航到/ Applications / MAMP / db / mysql56并删除我创建的数据库的文件夹来实现这一点。 You might be able to move them to the desktop and re-import them but I didn't need it so I just removed it and then restarted and it worked. 您可以将它们移动到桌面并重新导入它们,但我不需要它,所以我只是将其删除然后重新启动它就可以了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM