MySQL - 데이터베이스 복사

안녕하세요, 데이터베이스 열정가 여러분! 오늘 우리는 MySQL 데이터베이스의 세계로 흥미로운 여정을 떠납니다. 구체적으로, MySQL에서 데이터베이스를 어떻게 복사하는지 탐구해보겠습니다. 초보자라도 걱정 마세요 - 나는 할머니가 손자에게 쿠키를 만드는 것을 가르치는 것처럼 인내심을 가지고 단계별로 안내해드리겠습니다. 그麼, 손을 걷어붙이고 시작해보겠습니다!

MySQL - Copy Database

데이터베이스 복사 이해하기

시작하기 전에, 데이터베이스 복사가 무엇을 의미하는지 이해해보겠습니다. 당신이 아름다운 정원(당신의 데이터베이스)을 가지고 있고, 그 안에 다양한 색상의 꽃(당신의 데이터)이 가득 차 있다고 상상해보세요. 이제, 이 정원을 새로운 장소에 정확하게 복제하고 싶습니다. 이것이 바로 우리가 데이터베이스를 복사할 때 하는 일입니다 - 모든 데이터 구조와 정보의 정확한 쌍둥이를 만드는 것입니다.

MySQL에서 데이터베이스 복사하기

MySQL에서 데이터베이스를 복사하는 방법은 여러 가지가 있습니다. 하나씩 탐구해보겠습니다.

방법 1: mysqldump 사용하기

가장 일반적이고 간단한 방법은 mysqldump 명령어를 사용하는 것입니다. 이 도구는 MySQL과 함께 제공되며 데이터베이스 관리자에게 마법의 지팡이와도 같습니다.

다음은 그 사용법입니다:

mysqldump -u [사용자이름] -p [ 원본 데이터베이스 ] > [ 파일이름 ].sql
mysql -u [사용자이름] -p [ 새 데이터베이스 ] < [ 파일이름 ].sql

이를 간단히 설명하자면:

  1. 첫 번째 줄은 원본 데이터베이스의 덤프 파일을 만듭니다.
  2. 두 번째 줄은 이 덤프 파일을 새 데이터베이스로 가져옵니다.

예를 들어, "old_garden" 데이터베이스를 "new_garden"으로 복사하고 싶다면 다음과 같이 합니다:

mysqldump -u root -p old_garden > garden_backup.sql
mysql -u root -p new_garden < garden_backup.sql

"root"를 실제 MySQL 사용자이름으로 변경하세요.

방법 2: MySQL Workbench 사용하기

graphical interfaces에 익숙하다면, MySQL Workbench가 당신의 친구가 될 것입니다. 이는 데이터베이스를 관리하는 데 도움을 주는 친절한 로봇 비서와 같습니다.

  1. MySQL Workbench를 엽니다 و 서버에 연결합니다.
  2. Server > Data Export로 갑니다.
  3. 복사하고 싶은 데이터베이스를 선택합니다.
  4. "Export to Self-Contained File"을 선택하고 위치를 지정합니다.
  5. "Start Export"를 클릭합니다.
  6. 이제 Server > Data Import로 갑니다.
  7. "Import from Self-Contained File"을 선택하고 내보내진 파일을 선택합니다.
  8. 새 스키마(데이터베이스)를 생성하거나 기존의 것을 선택합니다.
  9. "Start Import"를 클릭합니다.

이렇게 하면 GUI를 사용하여 데이터베이스를 복사한 것입니다.

수동으로 데이터베이스 복사하기

때로는 손을 걷어붙이고 수동으로 일을 하고 싶을 때가 있습니다. 이는 mix를 사용하지 않고 케이크를 만드는 것과 같은 것입니다. 다음은 그 방법입니다:

  1. 먼저 새 데이터베이스를 생성합니다:
CREATE DATABASE new_garden;
  1. 그런 다음, SHOW CREATE TABLE 명령어를 사용하여 원본 데이터베이스의 각 테이블 구조를 가져옵니다:
SHOW CREATE TABLE old_garden.flowers;
  1. 출력을 복사하고 새 데이터베이스에서 실행합니다:
USE new_garden;
-- CREATE TABLE 문을 여기에 붙여넣으세요
  1. 마지막으로 데이터를 복사합니다:
INSERT INTO new_garden.flowers SELECT * FROM old_garden.flowers;

이 과정을 데이터베이스의 각 테이블에 대해 반복합니다. 더 많은 작업이 필요하지만, 이 과정에 대한 완전한 통제권을 갖습니다.

mysqldump 없이 데이터베이스 복사하기

mysqldump을 사용할 수 없다면, 걱정하지 마세요. Plan B가 있습니다! 순수 SQL을 사용하는 방법을 소개합니다:

-- 새 데이터베이스 생성
CREATE DATABASE new_garden;

-- 새 데이터베이스로 전환
USE new_garden;

-- 원본 데이터베이스의 테이블 생성 문장 가져오기
SET group_concat_max_len = 1024 * 1024;
SELECT GROUP_CONCAT(table_name SEPARATOR ' ')
INTO @tables
FROM information_schema.tables
WHERE table_schema = 'old_garden';

-- 새 데이터베이스에 테이블 생성
SET @stmt = CONCAT('CREATE TABLE ', @tables, ' SELECT * FROM old_garden.', @tables);
PREPARE stmt FROM @stmt;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

이 스크립트는 다음을 수행합니다:

  1. 새 데이터베이스를 생성합니다.
  2. 새 데이터베이스로 전환합니다.
  3. 원본 데이터베이스의 모든 테이블 목록을 가져옵니다.
  4. 새 데이터베이스에 테이블을 생성하고 데이터를 한 번에 복사합니다.

이는 마법의 주문처럼 한 번에 전체 정원을 복제하는 것입니다!

방법 비교

우리의 방법을 간단한 표로 요약해보겠습니다:

방법 장점 단점
mysqldump 간단하다, 널리 사용된다 명령줄 접근이 필요하다
MySQL Workbench 사용자 친화적인 GUI 대형 데이터베이스에서는 느릿하다
수동 복사 완전한 통제 시간이 오래 걸리며 실수가 발생할 수 있다
SQL 스크립트 mysqldump 없이 작동 초보자에게는 복잡하다

결론

이렇게 하면, 여러분은 MySQL에서 데이터베이스를 복사하는 다양한 방법을 탐구했습니다. 간단한 mysqldump 방법에서 복잡한 SQL 스크립트까지입니다. 기억하시기 바랍니다, 데이터베이스 관리는 인내와 신경 쓰는 과정입니다. 간단한 방법부터 시작하고, 점차 복잡한 방법으로 자신감을 쌓아가세요.

데이터베이스 작업을 시도하기 전에 항상 데이터를 백업하세요. 이는 정원을 정리하기 전에 정원의 사진을 찍는 것과 같습니다 - 무언가 잘못되면 항상 되돌아갈 수 있습니다.

데이터베이스 정원을 가꾸는 데 행복하시길 바라며, 데이터가 항상 아름답게 피어나길 기원합니다!

Credits: Image by storyset