I just upgraded my MAMP 3 to MAMP 4, and MySQL no longer starts.
The error log file has this over and over again:
160905 11:22:17 mysqld_safe mysqld restarted
2016-09-05 11:22:17 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2016-09-05 11:22:17 0 [Note] /Applications/MAMP/Library/bin/mysqld (mysqld 5.6.28) starting as process 8122 ...
2016-09-05 11:22:17 8122 [Warning] Setting lower_case_table_names=2 because file system for /Applications/MAMP/db/mysql56/ is case insensitive
2016-09-05 11:22:17 8122 [Note] Plugin 'FEDERATED' is disabled.
2016-09-05 11:22:17 8122 [Note] InnoDB: Using atomics to ref count buffer pool pages
2016-09-05 11:22:17 8122 [Note] InnoDB: The InnoDB memory heap is disabled
2016-09-05 11:22:17 8122 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2016-09-05 11:22:17 8122 [Note] InnoDB: Memory barrier is not used
2016-09-05 11:22:17 8122 [Note] InnoDB: Compressed tables use zlib 1.2.8
2016-09-05 11:22:17 8122 [Note] InnoDB: Not using CPU crc32 instructions
2016-09-05 11:22:17 8122 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2016-09-05 11:22:17 8122 [Note] InnoDB: Completed initialization of buffer pool
2016-09-05 11:22:17 8122 [Note] InnoDB: Highest supported file format is Barracuda.
2016-09-05 11:22:17 8122 [Note] InnoDB: The log sequence numbers 280599913118 and 280599913118 in ibdata files do not match the log sequence number 280599917593 in the ib_logfiles!
2016-09-05 11:22:17 8122 [Note] InnoDB: Database was not shutdown normally!
2016-09-05 11:22:17 8122 [Note] InnoDB: Starting crash recovery.
2016-09-05 11:22:17 8122 [Note] InnoDB: Reading tablespace information from the .ibd files...
2016-09-05 11:22:18 8122 [Note] InnoDB: Restoring possible half-written data pages
2016-09-05 11:22:18 8122 [Note] InnoDB: from the doublewrite buffer...
2016-09-05 11:22:18 8122 [Note] InnoDB: 128 rollback segment(s) are active.
2016-09-05 11:22:18 8122 [Note] InnoDB: 5.6.28 started; log sequence number 280599917593
2016-09-05 11:22:18 8122 [Note] RSA private key file not found: /Applications/MAMP/db/mysql56//private_key.pem. Some authentication plugins will not work.
2016-09-05 11:22:18 8122 [Note] RSA public key file not found: /Applications/MAMP/db/mysql56//public_key.pem. Some authentication plugins will not work.
2016-09-05 11:22:18 8122 [Note] Server hostname (bind-address): '*'; port: 8889
2016-09-05 11:22:18 8122 [Note] IPv6 is available.
2016-09-05 11:22:18 8122 [Note] - '::' resolves to '::';
2016-09-05 11:22:18 8122 [Note] Server socket created on IP: '::'.
10:22:18 UTC - mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed,
something is definitely wrong and this may fail.
key_buffer_size=8388608
read_buffer_size=131072
max_used_connections=0
max_threads=151
thread_count=0
connection_count=0
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 68101 K bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
Thread pointer: 0x7fdf7b288400
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 7fff5eeb3870 thread_stack 0x40000
0 mysqld 0x0000000101296688 my_print_stacktrace + 72
1 mysqld 0x0000000100f5d9e8 handle_fatal_signal + 952
2 libsystem_platform.dylib 0x00007fff8ac9952a _sigtramp + 26
3 ??? 0x00007fdf7b0b1170 0x0 + 140597818757488
4 mysqld 0x0000000101181a13 _Z9get_fieldP11st_mem_rootP5Field + 99
5 mysqld 0x0000000100f83cb1 _ZL8acl_loadP3THDP10TABLE_LIST + 1985
6 mysqld 0x0000000100f82f5f _Z10acl_reloadP3THD + 1135
7 mysqld 0x0000000100f82a55 _Z8acl_initb + 405
8 mysqld 0x00000001011c0a9a _Z11mysqld_mainiPPc + 2298
9 mysqld 0x0000000100d4db22 main + 34
10 libdyld.dylib 0x00007fff8c2205ad start + 1
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0): is an invalid pointer
Connection ID (thread ID): 0
Status: NOT_KILLED
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.
Trying to start it manually produces this error:
$ ./Library/bin/mysqld
160905 11:24:33 [ERROR] Can't read from messagefile '/Applications/MAMP/Library/share/english/errmsg.sys'
160905 11:24:33 [Warning] Can't create test file /Applications/MAMP/db/mysql/Joachims-iMac.lower-test
160905 11:24:33 [Warning] Can't create test file /Applications/MAMP/db/mysql/Joachims-iMac.lower-test
./Library/bin/mysqld: Can't change dir to '/Applications/MAMP/db/mysql/' (Errcode: 2)
160905 11:24:33 [ERROR] Aborting
That makes me think that this is caused by MAMP 4's system for upgrading my old databases from MAMP 3, which are in /MAMP/db/mysql56/, but the upgrade process itself crashes with this error:
Warning: Using a password on the command line interface can be insecure.
Looking for 'mysql' as: /Applications/MAMP/Library/bin/mysql
Looking for 'mysqlcheck' as: /Applications/MAMP/Library/bin/mysqlcheck
Error: Failed while fetching Server version! Could be due to unauthorized access.
FATAL ERROR: Upgrade failed
Poking around in the bin folder, I see a script bin/checkMysql.sh which does this:
$ /Applications/MAMP/Library/bin/mysqlcheck --all-databases --check --check-upgrade -u root -proot --socket=/Applications/MAMP/tmp/mysql/mysql.sock
Warning: Using a password on the command line interface can be insecure.
/Applications/MAMP/Library/bin/mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/Applications/MAMP/tmp/mysql/mysql.sock' (2) when trying to connect
And also mysql_upgrade which does this:
$ /Applications/MAMP/Library/bin/mysql_upgrade -u root -proot --socket=/Applications/MAMP/tmp/mysql/mysql.sock --force --verbose
Warning: Using a password on the command line interface can be insecure.
Looking for 'mysql' as: /Applications/MAMP/Library/bin/mysql
Looking for 'mysqlcheck' as: /Applications/MAMP/Library/bin/mysqlcheck
Error: Failed while fetching Server version! Could be due to unauthorized access.
FATAL ERROR: Upgrade failed
Those combined look like the error messages I saw in MAMP's console output when it tried to upgrade my databases.
The issue is usually due to another MySQL service running on the same port. The easiest solution is to kill all MySQL processes and restart MAMP. On macOS, you can do this using the Activity Monitor, which you'll find in the Utilities folder on your computer.
During installation, MAMP sets the default ports for both Apache (port 8888) and MySQL (port 8889).
What fixed it for me was adding the following line to my.cnf
from MAMP > File > Edit Template > MySQL used version
innodb_force_recovery = 1
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With