Я вижу, читая вокруг, это очень распространенная проблема, и есть 2 рекомендуемых основных решения:
- очистить временные файлы; и
- проверить, работает ли другой экземпляр MySQL.
Решение 1 - Очистить файлы
Я очистил ib_logfile0, ib_logfil1 и iddata1. Когда я перезапускаю MAMP, он воссоздает эти файлы, но сервер не запускается.
Решение 2 - Закройте другие экземпляры MySWL
Я не могу найти способ проверить, работает ли MySQL еще где-нибудь. Читая вокруг (включая справочный сайт MAMP), я должен использовать диспетчер задач Windows, чтобы найти «MySQLd» и закрыть все запущенные экземпляры, однако Win10, похоже, удалил функцию поиска из диспетчера задач. Просмотр процессов не показывал:
снимок экрана диспетчера задач Windows
Далее я видел людей, добавляющих "innodb_force_recovery = 1" в файл my.cnf. Я искал my.cnf, но не смог его найти. Вместо этого я попытался добавить строку в C: \ MAMP \ conf \ mysql \ my.ini, а также попытался добавить "innodb_force_recovery = 2". Ни один из них не работал.
Я попытался изменить номер порта, который использует MySQL, на 3307, который тоже не работал.
Наконец, я удалил и переустановил MAMP - не работает.
Журнал ошибок MySQL гласит:
[Предупреждение] TIMESTAMP с неявным значением DEFAULT устарела. Пожалуйста, используйте опцию сервера --explicit_defaults_for_timestamp (более подробную информацию смотрите в документации).
[Примечание] --secure-file-priv установлено в NULL. Операции, связанные с импортом и экспортом данных, отключены
[Примечание] C: \ MAMP \ bin \ mysql \ bin \ mysqld.exe (mysqld 5.7.24-log) запускается как процесс 9044 ...
Я думаю, что было бы полезно, если бы был способ проверить экземпляры MySQL, запущенные через командную строку, а затем, если они есть, закрыть его из командной строки.