我已将操作系统从 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 *