Вопрос:
Как лучше всего восстановить mysql (или в худшем случае: выполнить миграцию) из "chmod -R 777 /" с неповрежденными базами данных?
Система:
Ubuntu 12.04 LTS
MySQL 5.5.24
64-битный облачный сервер Amazon EC2.
Задний план: Попытка восстановить (или хотя бы восстановить данные из) системы, в которой это было сделано:
chmod -R 777 /
Нет смысла беспокоиться о том, почему. Это был менеджер со слишком большим доступом и слишком маленьким опытом, который любит плавать в глубокой воде. Это была чистая случайность с его стороны, на самом деле он не имел в виду, когда он это сделал.
Я восстановил большую часть системы, но я действительно зациклен на том, чтобы mysql снова заработал. Я уже проработал такие страницы как:
Уже сделали это:
sudo chmod 644 my.cnf
chown mysql:mysql my.cnf
В этот момент попытка запустить mysql:
sudo service mysql start
Производит этот вывод в системном журнале:
Apr 12 20:51:42 ip-10-10-25-143 kernel: [18632541.774742] type=1400 audit(1365799902.306:41): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=18210 comm="apparmor_parser"
Apr 12 20:51:42 ip-10-10-25-143 kernel: [18632541.964496] init: mysql main process (18214) terminated with status 1
Apr 12 20:51:42 ip-10-10-25-143 kernel: [18632541.964542] init: mysql main process ended, respawning
Apr 12 20:51:43 ip-10-10-25-143 kernel: [18632542.959796] init: mysql post-start process (18215) terminated with status 1
Apr 12 20:51:43 ip-10-10-25-143 kernel: [18632543.002041] type=1400 audit(1365799903.534:42): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=18238 comm="apparmor_parser"
Apr 12 20:51:43 ip-10-10-25-143 kernel: [18632543.098490] init: mysql main process (18242) terminated with status 1
Apr 12 20:51:43 ip-10-10-25-143 kernel: [18632543.098536] init: mysql main process ended, respawning
Apr 12 20:51:43 ip-10-10-25-143 kernel: [18632543.140706] init: mysql post-start process (18244) terminated with status 1
Apr 12 20:51:43 ip-10-10-25-143 kernel: [18632543.158681] type=1400 audit(1365799903.690:43): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=18258 comm="apparmor_parser"
Apr 12 20:51:43 ip-10-10-25-143 kernel: [18632543.285087] init: mysql main process (18262) terminated with status 1
Apr 12 20:51:43 ip-10-10-25-143 kernel: [18632543.285133] init: mysql respawning too fast, stopped
Я прочитал из этого, что mysql завершает работу со статусом 1, и он несколько раз зацикливается, пытаясь запустить, и останавливается от этого после слишком многих попыток. Я просмотрел статус 1, но не нашел подходящих решений.
/var/lib/mysql
. /var/lib/mysql
на новой ВМ в /var/lib/mysql.empty
. /var/lib/mysql
со старой ВМ на /var/lib/mysql
на новой ВМ. /var/lib/mysql
на основе разрешений на /var/lib/mysql.empty
. mysqldump -A
, воссоздавая новый, пустой каталог данных mysql и импортируя эти данные обратно на всякий случай. Переустановите систему и восстановите из резервной копии.