Centos 7 - 从数据文件 .frm 和 .ibd 恢复 mysql 数据库

Centos 7 - 从数据文件 .frm 和 .ibd 恢复 mysql 数据库

我已将操作系统从 Windows 迁移到 Centos 7,但没有通过 mysqldump 获取 mysql 备份。现在我有 mysql 数据文件 .frm 和 .ibd 。我想迁移他们

我怎样才能迁移数据库。

答案1

这是很有可能的。我将要解释的这个过程对于基于 Ubuntu 的系统有效,但我希望 CentOS 不会有太大差异。

本质上,您需要将 mysql 数据文件复制到该/var/lib/mysql/文件夹​​。 Mysql 数据文件在该文件夹中分布如下:

.
|-- debian-5.5.flag
|-- ibdata1
|-- ib_logfile0
|-- ib_logfile1
|-- drupal
|   |-- actions.frm
|   |-- actions.MYD
|   |-- actions.MYI
|   |-- wysiwyg.frm
|   |-- wysiwyg.MYD
|   |-- wysiwyg.MYI
|   |-- wysiwyg_user.frm
|   |-- wysiwyg_user.MYD
|   |-- wysiwyg_user.MYI
|   |-- xmlsitemap.frm
|   |-- xmlsitemap.MYD
|   |-- xmlsitemap.MYI
|   |-- xmlsitemap_sitemap.frm
|   |-- xmlsitemap_sitemap.MYD
|   `-- xmlsitemap_sitemap.MYI
|-- mysql
|   |-- columns_priv.frm
|   |-- columns_priv.MYD
|   |-- columns_priv.MYI
|   |-- db.frm
|   |-- db.MYD
|   |-- db.MYI
|   |-- event.frm
|   |-- event.MYD
|   |-- event.MYI
|   |-- func.frm
|   |-- func.MYD
|   |-- func.MYI
|   |-- general_log.CSM
|   |-- general_log.CSV
|   |-- general_log.frm
|   |-- help_category.frm
|   |-- help_category.MYD
|   |-- help_category.MYI
|   |-- help_keyword.frm
|   |-- help_keyword.MYD
|   |-- help_keyword.MYI
|   |-- procs_priv.MYI
|   |-- proxies_priv.frm
|   |-- proxies_priv.MYD
|   |-- proxies_priv.MYI
|   |-- servers.frm
|   |-- servers.MYD
|   |-- servers.MYI
|   |-- slow_log.CSM
|   |-- slow_log.CSV
|   |-- slow_log.frm
|   |-- tables_priv.frm
|   |-- tables_priv.MYD
|   |-- tables_priv.MYI
|   |-- time_zone.frm
|   |-- time_zone_leap_second.frm
|   |-- time_zone_leap_second.MYD
|   |-- time_zone_leap_second.MYI
|   |-- time_zone.MYD
|   |-- time_zone.MYI
|   |-- time_zone_name.frm
|   |-- time_zone_name.MYD
|   |-- time_zone_name.MYI
|   |-- time_zone_transition.frm
|   |-- time_zone_transition.MYD
|   |-- time_zone_transition.MYI
|   |-- time_zone_transition_type.frm
|   |-- time_zone_transition_type.MYD
|   |-- time_zone_transition_type.MYI
|   |-- user.frm
|   |-- user.MYD
|   `-- user.MYI
|-- mysql_upgrade_info
|-- performance_schema
|   |-- cond_instances.frm
|   |-- db.opt
|   |-- events_waits_current.frm
|   |-- events_waits_history.frm
|   |-- events_waits_history_long.frm
|   |-- events_waits_summary_by_instance.frm
|   |-- events_waits_summary_by_thread_by_event_name.frm
|   |-- events_waits_summary_global_by_event_name.frm
|   |-- file_instances.frm
|   |-- file_summary_by_event_name.frm
|   |-- file_summary_by_instance.frm
|   |-- mutex_instances.frm
|   |-- performance_timers.frm
|   |-- rwlock_instances.frm
|   |-- setup_consumers.frm
|   |-- setup_instruments.frm
|   |-- setup_timers.frm
|   `-- threads.frm
|-- phpmyadmin
|   |-- db.opt
|   |-- pma_bookmark.frm
|   |-- pma_bookmark.MYD
|   |-- pma_bookmark.MYI
|   |-- pma_column_info.frm
|   |-- pma_column_info.MYD
|   |-- pma_column_info.MYI
|   |-- pma_designer_coords.frm
|   |-- pma_designer_coords.MYD
|   |-- pma_designer_coords.MYI
|   |-- pma_history.frm
|   |-- pma_history.MYD
|   |-- pma_history.MYI
|   |-- pma_pdf_pages.frm
|   |-- pma_pdf_pages.MYD
|   |-- pma_pdf_pages.MYI
|   |-- pma_recent.frm
|   |-- pma_recent.MYD
|   |-- pma_recent.MYI
|   |-- pma_relation.frm
|   |-- pma_relation.MYD
|   |-- pma_relation.MYI
|   |-- pma_table_coords.frm
|   |-- pma_table_coords.MYD
|   |-- pma_table_coords.MYI
|   |-- pma_table_info.frm
|   |-- pma_table_info.MYD
|   |-- pma_table_info.MYI
|   |-- pma_table_uiprefs.frm
|   |-- pma_table_uiprefs.MYD
|   |-- pma_table_uiprefs.MYI
|   |-- pma_tracking.frm
|   |-- pma_tracking.MYD
|   |-- pma_tracking.MYI
|   |-- pma_userconfig.frm
|   |-- pma_userconfig.MYD
|   `-- pma_userconfig.MYI

因此,正如您从上面的命令的修剪输出中看到的tree,数据文件分布在与每个数据库相关的子文件夹内。最有可能的是,Windows-7 中的 mysql 数据库也以这种形式分发数据,因此您只需复制该文件夹中的所有内容即可。

做完这些之后,还有一个关键步骤。您需要将所有这些文件和文件夹的所有者和组更改为mysql.这是我在迁移过程中错过的一个重要的关键步骤,直到我弄清楚它为止,我一直很头疼。为此,请/var/lib/mysql在复制文件后在文件夹内发出命令:

chown -R  mysql:mysql *

相关内容