Назад | Перейти на главную страницу

MariaDB 10.3.22 для RPI, запущенного с innodb_force_recovery = 5: mysqldump не работает, утверждает, что «[mysqld]» отсутствует в конфигурации, но на самом деле присутствует

Я запускаю MariaDB 10.3.22 на Raspberry Pi 3 с Raspbian Buster, используя движок InnoDB. Из-за отключения электричества на моем RPI стол на моем innodb_system табличное пространство повреждено. В конце концов мне удалось запустить MySQL, вставив innodb_force_recovery = 5 на mariadb.conf.d/50-server.cnf, но наступает момент бежать mysqldump, это не сработает с этой ошибкой:

# mysqldump -u root -p --all-databases > mysqlbackup.sql
error: Found option without preceding group in config file: /etc/mysql/my.cnf at line: 1
Fatal error in defaults handling. Program aborted

Поиск в Google "Ошибка mysqldump: найден параметр без предшествующей группы в файле конфигурации" принес мне много результатов поиска, в которых говорилось, что это потому, что в моем каталоге конфигурации отсутствует [mysqld] раздел. Однако, это не так:

# grep -r "\[mysqld\]" /etc/mysql/*
/etc/mysql/mariadb.cnf:[mysqld]
/etc/mysql/my.cnf:[mysqld]

Я получаю ту же ошибку при попытке сбросить по одной базе данных с помощью mysqldump -u root -p --databases <a database>.

На данный момент у меня нет другого выбора, кроме как вручную сбрасывать таблицы базы данных одну за другой с помощью SQL-запросов, таких как select * from innodb_sys_tablespaces into outfile '/media/USB/mysql-backups/information_schema-innodb_sys_tablespaces.sql';; даже если бы я написал сценарий, чтобы избежать этого вручную, было бы непросто сделать этот сценарий правильным.

Есть ли способ исправить эту проблему и получить mysqldump работать до того, как решиться на длительную попытку восстановления таблицы за таблицей?

Это содержание моего my.cnf файл:

[mysqld]
[client-server]

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/

# The MariaDB configuration file
#
# The MariaDB/MySQL tools read configuration files in the following order:
# 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults,
# 2. "/etc/mysql/conf.d/*.cnf" to set global options.
# 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options.
# 4. "~/.my.cnf" to set user-specific options.
#
# If the same option is defined multiple times, the last one will apply.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.

#
# This group is read both both by the client and the server
# use it for options that affect everything
#

# Import all .cnf files from configuration directory

Это руководство, которое я использовал для восстановления своих баз данных: https://stackoverflow.com/questions/15304708/recover-mysql-database-from-ibdata1