mysql datadir со старой системы жесткого диска не загружается

Я пытаюсь перенести базу данных mysql со старого диска с Fedora9 (который больше не загружался) на сервер Ubuntu 16.04.

Я скопировал папку /var/lib/mysql из старой системы в /testdb/mysql в новой системе.

Я меняю владельца на mysql:mysql в новую папку и обновляю каталог данных my.conf в эту новую папку, но сервер mysql больше не загружается. Я получаю следующую ошибку:

170625 12:44:37 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
170625 12:44:37 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Table 'mysql.plugin' doesn't exist
170625 12:44:37 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
170625 12:44:37 InnoDB: The InnoDB memory heap is disabled
170625 12:44:37 InnoDB: Mutexes and rw_locks use GCC atomic builtins
170625 12:44:37 InnoDB: Compressed tables use zlib 1.2.8
170625 12:44:37 InnoDB: Using Linux native AIO
170625 12:44:37 InnoDB: Initializing buffer pool, size = 128.0M
170625 12:44:37 InnoDB: Completed initialization of buffer pool
170625 12:44:37  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
170625 12:44:38 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
170625 12:44:38 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Table 'mysql.plugin' doesn't exist
170625 12:44:38 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
170625 12:44:38 InnoDB: The InnoDB memory heap is disabled
170625 12:44:38 InnoDB: Mutexes and rw_locks use GCC atomic builtins
170625 12:44:38 InnoDB: Compressed tables use zlib 1.2.8
170625 12:44:38 InnoDB: Using Linux native AIO
170625 12:44:38 InnoDB: Initializing buffer pool, size = 128.0M
170625 12:44:38 InnoDB: Completed initialization of buffer pool
170625 12:44:38  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
170625 12:44:38 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
170625 12:44:38 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Table 'mysql.plugin' doesn't exist
170625 12:44:38 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
170625 12:44:38 InnoDB: The InnoDB memory heap is disabled
170625 12:44:38 InnoDB: Mutexes and rw_locks use GCC atomic builtins
170625 12:44:38 InnoDB: Compressed tables use zlib 1.2.8
170625 12:44:38 InnoDB: Using Linux native AIO
170625 12:44:38 InnoDB: Initializing buffer pool, size = 128.0M
170625 12:44:38 InnoDB: Completed initialization of buffer pool
170625 12:44:38  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.

Пробовал менять все разрешения, даже 777 на все файлы (только на пробу), но всегда один и тот же результат.

Как я могу восстановить базы данных?


person togarha    schedule 25.06.2017    source источник
comment
@ BK435 Как я задал вопрос, моим первым шагом после копирования папки было изменение владельца на mysql:mysql (sudo chown -R mysql:mysql /testdb/mysql). Поскольку это первое изменение не работает, я попытался изменить все разрешения на 777 (сохранив mysql как пользователя и группу)   -  person togarha    schedule 26.06.2017
comment
Здесь пользователь файла ibdata и разрешения: -rwxrwxrwx 1 mysql mysql 18874368 jun 25 12:22 ibdata1   -  person togarha    schedule 27.06.2017
comment
Новый тест, у меня была папка по умолчанию, которая отлично работала с тестовой базой данных на /var/lib/mysql, затем я создал новую папку sudo mkdir /var/liv, в которой есть пользователь и группа root:root в качестве папки /var/lib, затем я скопировал папку mysql в эту новую папку (сохранив пользователя, группа и разрешения) sudo cp -rp /var/lib/mysql /var/liv и я изменил каталог datadir в my.cnf с /etc/mysql/my.cnf на datadir = /var/liv/mysql, после чего mysql больше не запускался (тогда, я полагаю, что папка изменена правильно, но что-то не получается)   -  person togarha    schedule 27.06.2017
comment
Я действительно не знаю, почему это происходит, но я нашел способ восстановить все таблицы, я отвечу на свой вопрос, чтобы отметить его как решенный, тогда может помочь кому-то   -  person togarha    schedule 27.06.2017


Ответы (1)


Наконец-то я нашел способ восстановить таблицы, и он не меняет каталог данных из my.conf (это не сработало, даже копирование содержимого базы данных по умолчанию работает нормально), я скопировал папку, в которую хочу восстановить каталог данных по умолчанию, перезаписывая все файлы, кроме mysql.sock и папки mysql. Затем я запустил сервер mysql, и он работает, но некоторые таблицы должны быть восстановлены с помощью

mysqlcheck --repair --all-databases -u root -p 

Теперь все работает нормально

person togarha    schedule 27.06.2017