MySQL сервер не работает через MAMP на Mac OS - PullRequest
0 голосов
/ 10 октября 2018

Я обновил версию MAMP PRO 3.5.2 до 5-го, и запуск MySQL завершился неудачно.

Я уничтожил процессы mysqld с помощью killall -9 mysqld, очистил файлы журнала, например ib_logfile*, и попробовал манипуляции с innodb recovery.

Журнал, который я получил, выглядит следующим образом:

2018-10-10T14:16:12.6NZ mysqld_safe Logging to '/Applications/MAMP/logs/mysql_error.log'. 2018-10-10T14:16:12.6NZ mysqld_safe Starting mysqld daemon with databases from /Library/Application Support/appsolute/MAMP PRO/db/mysql57 2018-10-10T14:16:13.043096Z 0 [Warning] Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider setting it to a valid, non-empty path. 2018-10-10T14:16:13.051110Z 0 [Note] /Applications/MAMP/Library/bin/mysqld (mysqld 5.7.23) starting as process 5538 ... 2018-10-10T14:16:13.064223Z 0 [Warning] Setting lower_case_table_names=2 because file system for /Library/Application Support/appsolute/MAMP PRO/db/mysql57/ is case insensitive 2018-10-10T14:16:13.074890Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2018-10-10T14:16:13.074926Z 0 [Note] InnoDB: Uses event mutexes 2018-10-10T14:16:13.074936Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier 2018-10-10T14:16:13.074943Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3 2018-10-10T14:16:13.074972Z 0 [Note] InnoDB: Adjusting innodb_buffer_pool_instances from 8 to 1 since innodb_buffer_pool_size is less than 1024 MiB 2018-10-10T14:16:13.079521Z 0 [Note] InnoDB: Number of pools: 1 2018-10-10T14:16:13.084840Z 0 [Note] InnoDB: Using CPU crc32 instructions 2018-10-10T14:16:13.089357Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M 2018-10-10T14:16:13.114376Z 0 [Note] InnoDB: Completed initialization of buffer pool 2018-10-10T14:16:13.140491Z 0 [Note] InnoDB: Highest supported file format is Barracuda. 2018-10-10T14:16:13.145746Z 0 [ERROR] InnoDB: Trying to access page number 527111 in space 0, space name innodb_system, which is outside the tablespace bounds. Byte offset 0, len 16384, i/o type read. If you get this error at mysqld startup, please check that your my.cnf matches the ibdata files that you have in the MySQL server. 2018-10-10T14:16:13.145772Z 0 [ERROR] InnoDB: Server exits. 2018-10-10T14:16:13.6NZ mysqld_safe mysqld from pid file /Applications/MAMP/tmp/mysql/mysql.pid ended

Буду признателен за любую подсказку, в каком направлении двигаться, как я начну рассматривать для удаления и переустановки MAMPчто означает, что я потеряю несколько локальных установок БД.

Спасибо!

1 Ответ

0 голосов
/ 12 октября 2018

Таким образом, проблема была решена, и MySQL работает локально через MAMP 5.1.

При выяснении, что пошло не так в my.cnf, были применены следующие настройки:

  • увеличено innodb_buffer_pool_size значение: innodb_buffer_pool_size = 1024M
  • включен режим принудительного восстановления innodb_force_recovery = 1

Это привело к ошибке, упомянутой в вопросе:

[ERROR] InnoDB: Trying to access page number 527111 in space 0, space name innodb_system, which is outside the tablespace bounds. Byte offset 0, len 16384, i/o type read. If you get this error at mysqld startup, please check that your my.cnf matches the ibdata files that you have in the MySQL server.

На этом этапе настройки по умолчанию для ibdata dir и path были некомментированы внутри my.cnf:

innodb_data_home_dir = "/Library/Application Support/appsolute/MAMP PRO/db/mysql57"

innodb_data_file_path = ibdata1:10M:autoextend

innodb_log_group_home_dir = "/Library/Application Support/appsolute/MAMP PRO/db/mysql57"

Журнал ошибок сообщался об ограничениях доступа (точного предложения нет передо мной), здесь его немного потеряли, и в качестве меры предположения я расширил права на папку /Library/Application Support/appsolute/MAMP PRO/db/mysql57 моему текущему пользователю.

Это не изменило журнал.Ошибка о неверном пути к ibdata все еще была там.

В конце концов переименование папки mysql (где была полная версия ibdata (~ 40Gb))в mysql57 помогло.

После установки MAMP 5.1 в /Library/Application Support/appsolute/MAMP PRO/db/ была следующая структура папок:

-- mysql

-- mysql56_TIMESTAMP

-- mysql57

с той же структурой файлов, но более тщательное сравнение содержимого показало, что полная версия файла внутри mysql, поэтому переименовала его и удалила все папкипосле тестов что MAMP корректно работает без них.

Так что теперь у меня есть только одна папка mysql внутри /Library/Application Support/appsolute/MAMP PRO/db/.Настройки внутри my.cnf, которые я настроил в процессе, откатились.

...