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