Centos 7 - 데이터 파일 .frm 및 .ibd에서 mysql 데이터베이스 복원

Centos 7 - 데이터 파일 .frm 및 .ibd에서 mysql 데이터베이스 복원

운영 체제를 Windows에서 Centos 7로 마이그레이션했지만 mysqldump를 통해 mysql 백업을 받을 수 없습니다. 이제 mysql 데이터 파일 .frm 및 .ibd가 있습니다. 마이그레이션하고 싶습니다.

데이터베이스를 어떻게 마이그레이션할 수 있나요?

답변1

이것은 매우 가능합니다. 제가 설명하려는 프로세스는 Ubuntu 기반 시스템에서 작동하지만 CentOS도 크게 다르지 않기를 바랍니다.

/var/lib/mysql/기본적으로 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 *

관련 정보