Из-за кошмара, который каким-то образом стал реальным, моя установка mysql оказалась переустановленной. Я не мог запустить mysql перед повторной установкой, поэтому я не мог использовать mysqldump для создания правильной резервной копии. Однако я скопировал / var / lib / mysql в безопасное место. Попытка rsync папок базы данных обратно в их старые местоположения не работает - ну, это вроде работает, но тогда Wordpress имеет кризис, даже с исправлениями. Если я создаю эту базу данных вручную, а затем rsync, mysql не запустится.
Возможно ли восстановить эту папку?
EDIT: теперь у меня есть это, чтобы я мог см. папку в приглашении mysql. Я могу использовать эту базу данных, но стараюсь SELECT * FROM wp_posts; дает мне
mysql> SELECT * FROM wp_posts;
ERROR 1146 (42S02): Table 'alfheimwp.wp_posts' doesn't exist
Несмотря на то, что
mysql> SHOW TABLES;
+-------------------------------------------------+
| Tables_in_alfheimwp |
+-------------------------------------------------+
| wp_bp_activity |
| wp_bp_activity_meta |
| wp_bp_friends |
| wp_bp_groups |
| wp_bp_groups_groupmeta |
| wp_bp_groups_members |
| wp_bp_messages_messages |
| wp_bp_messages_meta |
| wp_bp_messages_notices |
| wp_bp_messages_recipients |
| wp_bp_notifications |
| wp_bp_notifications_meta |
| wp_bp_user_blogs |
| wp_bp_user_blogs_blogmeta |
| wp_bp_xprofile_data |
| wp_bp_xprofile_fields |
| wp_bp_xprofile_groups |
| wp_bp_xprofile_meta |
| wp_commentmeta |
| wp_comments |
| wp_links |
| wp_options |
| wp_postmeta |
| wp_posts |
| wp_sg_action |
| wp_sg_config |
| wp_sg_schedule |
| wp_signups |
| wp_term_relationships |
| wp_term_taxonomy |
| wp_termmeta |
| wp_terms |
| wp_ucare_logs |
| wp_usermeta |
| wp_users |
| wp_woocommerce_api_keys |
| wp_woocommerce_attribute_taxonomies |
| wp_woocommerce_downloadable_product_permissions |
| wp_woocommerce_log |
| wp_woocommerce_order_itemmeta |
| wp_woocommerce_order_items |
| wp_woocommerce_payment_tokenmeta |
| wp_woocommerce_payment_tokens |
| wp_woocommerce_sessions |
| wp_woocommerce_shipping_zone_locations |
| wp_woocommerce_shipping_zone_methods |
| wp_woocommerce_shipping_zones |
| wp_woocommerce_tax_rate_locations |
| wp_woocommerce_tax_rates |
| wp_wpsp_agent_settings |
| wp_wpsp_attachments |
| wp_wpsp_canned_reply |
| wp_wpsp_catagories |
| wp_wpsp_custom_fields |
| wp_wpsp_custom_priority |
| wp_wpsp_custom_status |
| wp_wpsp_faq |
| wp_wpsp_faq_catagories |
| wp_wpsp_panel_custom_menu |
| wp_wpsp_ticket |
| wp_wpsp_ticket_thread |
+-------------------------------------------------+
61 rows in set (0.00 sec)
Итак, что-то в этой базе данных о том, что mysql отсутствует, однако, это точно такая же версия mysql, что и я используя до этого.
EDIT 2: Наконец, начинаем куда-то попасть, но я глубоко в кроличьей дыре, и мне нужен помощник innodb здесь ... теперь mysql не может начать с этого:
2017-10-13T01:55:16.625761Z 0 [ERROR] [FATAL] InnoDB: Tablespace id is 1121 in the data dictionary but in file ./mysql/help_relation.ibd it is 6!
Причина, по которой я не мог прочитать из таблиц, состояла в том, что я не восстановил файлы innodb в папке mail / var / lib / mysql. Теперь, когда у меня есть, эти идентификаторы табличного пространства не выстраиваются. Я понятия не имею, как их редактировать или если это даже способ решить эту проблему. Хотелось бы, чтобы был автоматизированный способ их исправить!
Хорошо, здесь. Итак, вам нужно выполнить полную очистку mysql. Не утруждайте себя даже попыткой переключиться на mariadb в этот момент, он просто не будет работать (не удалось изменить пароль root, несмотря на удаление каждого файла, связанного с mysql).
[EDIT: Я позже понял, что это было потому, что я не запускал mariadb как root. По какой-то причине, если у вас установлен mariadb, вы должны запустить приглашение с помощью sudo mysql -u root -p. Поэтому теоретически mariadb должен работать и для этого процесса.]
Вам нужно сделать новую установку mysql-сервера. Начните с удаления всего mysql-связанного с
sudo apt-get purge mysql-server* mariadb*
Затем удалите все связанные с mysql папки (убедитесь, что у вас уже есть безопасная резервная копия из всех / var / lib / mysql-папок).
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
sudo rm -rf /var/log/mysql
Затем переустановите mysql-сервер. Если это ошибка с ошибкой глупой зависимости, сделайте
ln -s /etc/mysql/mysql.conf.d /etc/mysql/conf.d
(или наоборот, не можете вспомнить сейчас), затем снова запустите
sudo apt-get install mysql-server
и дайте ей закончить настройка. Остановите сервер mysql с помощью
sudo systemctl stop mysql
Затем скопируйте JUST папки базы данных (и весь их контент) обратно в / var / lib / mysql. Затем также скопируйте ib * в / var / lib / mysql (это словарь innodb и другие файлы).
sudo rsync -r <backedupfolder>/ib* /var/lib/mysql/
Обязательно выполните
sudo chown -R mysql:mysql /var/lib/mysql
Измените /etc/mysql/my.cnf и добавьте innodb_force_recovery=5 в раздел [mysqld] (возможно, вам потребуется добавить [туздЫ]). Теперь снова запустите mysql с помощью systemctl start mysql. Если вы посмотрите на /var/log/mysql/error.log, вы все равно можете увидеть ошибки, однако попробуйте войти в подсказку с помощью
mysql -u root -p
. Если вы можете запустить его, отлично. Если нет, посмотрите еще раз на статус systemctl mysql.service и посмотрите, что он говорит. Это может быть вопрос разрешений. Если вам наконец удалось войти в приглашение, немедленно сделайте
mysqldump -u root -p <databasename> > database.sql
, чтобы мы могли получить чистый дамп этой базы данных. Теперь, когда у нас есть чистый дамп важных баз данных, нам нужно повторить первые несколько шагов (по крайней мере, я это сделал), я был в состоянии запустить WordPress на этом этапе, но я не мог зарегистрировать в). Поэтому повторите первые несколько шагов очистки, удалив все директории mysql после удаления mysql-сервера. Переустановите, но на этот раз просто запустите
mysql -u root -p <databasename> < database.sql
И вы должны быть золотыми! Возможно, вам придется заново создать базы данных (CREATE DATABASE databasename;). Не забудьте повторно создать пользователя, который ранее принадлежал этой базе (если вы забыли, загляните в свой / var / www / html / wp-config. php или где-либо еще ваш wp-config.php для деталей).
Хорошо, здесь. Итак, вам нужно выполнить полную очистку mysql. Не утруждайте себя даже попыткой переключиться на mariadb в этот момент, он просто не будет работать (не удалось изменить пароль root, несмотря на удаление каждого файла, связанного с mysql).
[EDIT: Я позже понял, что это было потому, что я не запускал mariadb как root. По какой-то причине, если у вас установлен mariadb, вы должны запустить приглашение с помощью sudo mysql -u root -p. Поэтому теоретически mariadb должен работать и для этого процесса.]
Вам нужно сделать новую установку mysql-сервера. Начните с удаления всего mysql-связанного с
sudo apt-get purge mysql-server* mariadb*
Затем удалите все связанные с mysql папки (убедитесь, что у вас уже есть безопасная резервная копия из всех / var / lib / mysql-папок).
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
sudo rm -rf /var/log/mysql
Затем переустановите mysql-сервер. Если это ошибка с ошибкой глупой зависимости, сделайте
ln -s /etc/mysql/mysql.conf.d /etc/mysql/conf.d
(или наоборот, не можете вспомнить сейчас), затем снова запустите
sudo apt-get install mysql-server
и дайте ей закончить настройка. Остановите сервер mysql с помощью
sudo systemctl stop mysql
Затем скопируйте JUST папки базы данных (и весь их контент) обратно в / var / lib / mysql. Затем также скопируйте ib * в / var / lib / mysql (это словарь innodb и другие файлы).
sudo rsync -r <backedupfolder>/ib* /var/lib/mysql/
Обязательно выполните
sudo chown -R mysql:mysql /var/lib/mysql
Измените /etc/mysql/my.cnf и добавьте innodb_force_recovery=5 в раздел [mysqld] (возможно, вам потребуется добавить [туздЫ]). Теперь снова запустите mysql с помощью systemctl start mysql. Если вы посмотрите на /var/log/mysql/error.log, вы все равно можете увидеть ошибки, однако попробуйте войти в подсказку с помощью
mysql -u root -p
. Если вы можете запустить его, отлично. Если нет, посмотрите еще раз на статус systemctl mysql.service и посмотрите, что он говорит. Это может быть вопрос разрешений. Если вам наконец удалось войти в приглашение, немедленно сделайте
mysqldump -u root -p <databasename> > database.sql
, чтобы мы могли получить чистый дамп этой базы данных. Теперь, когда у нас есть чистый дамп важных баз данных, нам нужно повторить первые несколько шагов (по крайней мере, я это сделал), я был в состоянии запустить WordPress на этом этапе, но я не мог зарегистрировать в). Поэтому повторите первые несколько шагов очистки, удалив все директории mysql после удаления mysql-сервера. Переустановите, но на этот раз просто запустите
mysql -u root -p <databasename> < database.sql
И вы должны быть золотыми! Возможно, вам придется заново создать базы данных (CREATE DATABASE databasename;). Не забудьте повторно создать пользователя, который ранее принадлежал этой базе (если вы забыли, загляните в свой / var / www / html / wp-config. php или где-либо еще ваш wp-config.php для деталей).
Хорошо, здесь. Итак, вам нужно выполнить полную очистку mysql. Не утруждайте себя даже попыткой переключиться на mariadb в этот момент, он просто не будет работать (не удалось изменить пароль root, несмотря на удаление каждого файла, связанного с mysql).
[EDIT: Я позже понял, что это было потому, что я не запускал mariadb как root. По какой-то причине, если у вас установлен mariadb, вы должны запустить приглашение с помощью sudo mysql -u root -p. Поэтому теоретически mariadb должен работать и для этого процесса.]
Вам нужно сделать новую установку mysql-сервера. Начните с удаления всего mysql-связанного с
sudo apt-get purge mysql-server* mariadb*
Затем удалите все связанные с mysql папки (убедитесь, что у вас уже есть безопасная резервная копия из всех / var / lib / mysql-папок).
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
sudo rm -rf /var/log/mysql
Затем переустановите mysql-сервер. Если это ошибка с ошибкой глупой зависимости, сделайте
ln -s /etc/mysql/mysql.conf.d /etc/mysql/conf.d
(или наоборот, не можете вспомнить сейчас), затем снова запустите
sudo apt-get install mysql-server
и дайте ей закончить настройка. Остановите сервер mysql с помощью
sudo systemctl stop mysql
Затем скопируйте JUST папки базы данных (и весь их контент) обратно в / var / lib / mysql. Затем также скопируйте ib * в / var / lib / mysql (это словарь innodb и другие файлы).
sudo rsync -r <backedupfolder>/ib* /var/lib/mysql/
Обязательно выполните
sudo chown -R mysql:mysql /var/lib/mysql
Измените /etc/mysql/my.cnf и добавьте innodb_force_recovery=5 в раздел [mysqld] (возможно, вам потребуется добавить [туздЫ]). Теперь снова запустите mysql с помощью systemctl start mysql. Если вы посмотрите на /var/log/mysql/error.log, вы все равно можете увидеть ошибки, однако попробуйте войти в подсказку с помощью
mysql -u root -p
. Если вы можете запустить его, отлично. Если нет, посмотрите еще раз на статус systemctl mysql.service и посмотрите, что он говорит. Это может быть вопрос разрешений. Если вам наконец удалось войти в приглашение, немедленно сделайте
mysqldump -u root -p <databasename> > database.sql
, чтобы мы могли получить чистый дамп этой базы данных. Теперь, когда у нас есть чистый дамп важных баз данных, нам нужно повторить первые несколько шагов (по крайней мере, я это сделал), я был в состоянии запустить WordPress на этом этапе, но я не мог зарегистрировать в). Поэтому повторите первые несколько шагов очистки, удалив все директории mysql после удаления mysql-сервера. Переустановите, но на этот раз просто запустите
mysql -u root -p <databasename> < database.sql
И вы должны быть золотыми! Возможно, вам придется заново создать базы данных (CREATE DATABASE databasename;). Не забудьте повторно создать пользователя, который ранее принадлежал этой базе (если вы забыли, загляните в свой / var / www / html / wp-config. php или где-либо еще ваш wp-config.php для деталей).