Можно ли восстановить базу данных mysql из папки / var / lib / mysql / database?

Из-за кошмара, который каким-то образом стал реальностью, моя установка mysql была переустановлена. Мне не удалось запустить mysql до переустановки, поэтому я не мог использовать mysqldump для правильного резервного копирования. Однако я скопировал / var / lib / mysql в безопасное место. Попытка rsync папок базы данных обратно в их старые места не работает - ну, вроде как работает, но затем wordpress дает сбой, даже с исправленными разрешениями. Если я создам эту базу данных вручную, а затем синхронизирую ее, mysql не запустится.

Можно ли каким-то образом восстановить эту папку?

РЕДАКТИРОВАТЬ: Теперь она у меня есть, так что я могу видеть папку в приглашении 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, которую я использовал раньше.

РЕДАКТИРОВАТЬ 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. Однако теперь, когда у меня есть идентификаторы табличных пространств, они не выстраиваются в линию. Я понятия не имею, как их редактировать или это вообще способ решить. Хотелось бы, чтобы это был автоматизированный способ исправить это!

8
задан 12 October 2017 в 18:58

1 ответ

Хорошо, здесь идет. Так, необходимо сделать полную чистку mysql. Не потрудитесь даже пытаться переключиться на mariadb в этой точке, он просто не будет работать (не могущий изменить пароль root несмотря на удаление каждого файла, связанного с mysql).

[РЕДАКТИРОВАНИЕ: Я позже понял, что это было то, потому что я не выполнял mariadb как корень. По некоторым причинам, если у Вас есть 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

Затем скопируйте ПРОСТО папки базы данных (и все их содержание) назад к/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] раздел (Вы, возможно, должны были бы добавить [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 для деталей).

5
ответ дан 23 November 2019 в 05:50

Другие вопросы по тегам:

Похожие вопросы: