기존 MySQL 데이터베이스에서 ServBay의 MariaDB로 데이터 가져오기
ServBay는 강력한 로컬 웹 개발 환경으로, 기본 데이터베이스 관리 시스템으로 MariaDB를 내장하고 있습니다. MariaDB는 MySQL과 높은 호환성을 자랑하므로, 기존 MySQL 인스턴스의 데이터를 ServBay 내장 MariaDB로 마이그레이션하는 과정이 비교적 간단합니다. 이 문서에서는 기존 MySQL 데이터베이스를 내보내고, ServBay 환경의 MariaDB로 성공적으로 가져오는 방법을 단계별로 안내합니다.
개요
이 가이드는 개발자들이 기존 프로젝트 또는 데이터의 MySQL 데이터베이스를 ServBay의 MariaDB로 마이그레이션할 수 있도록 돕기 위해 작성되었습니다. 이를 통해 ServBay 환경에서 데이터를 계속 사용하면서, 효율적이고 편리한 로컬 개발 및 테스트 환경을 누릴 수 있습니다.
적용 사례
- 온라인 서버 또는 다른 로컬 머신의 MySQL 데이터베이스를 ServBay 환경으로 옮겨 로컬 개발에 활용하고자 할 때
- 기존 MySQL 데이터베이스를 ServBay의 MariaDB 인스턴스로 병합 혹은 백업할 때
- ServBay 환경에서 기존 MySQL 데이터와의 호환성을 테스트하고자 할 때
사전 준비 사항
데이터 가져오기 작업을 시작하기 전에 다음 사항을 반드시 확인해 주세요.
- MySQL 설치 및 실행 중: 내보낼 데이터가 포함된 MySQL 데이터베이스 인스턴스가 필요합니다. 해당 인스턴스의 접속 정보(호스트, 포트, 사용자명, 비밀번호)를 알고 있어야 합니다.
- ServBay 설치 및 실행 중: ServBay에는 MariaDB가 기본 내장되어 있습니다. ServBay 앱이 실행 중이고 MariaDB 서비스가 시작된 상태인지 확인하세요. ServBay 메인 화면의 ‘패키지’(또는 '소프트웨어') 목록에서 MariaDB의 실행 상태를 확인할 수 있습니다.
- ServBay MariaDB 접속 정보: ServBay MariaDB의 접속 정보를 알아야 합니다. 기본적으로 MariaDB는
127.0.0.1
(또는localhost
)의3306
포트에서 동작하며, 기본 사용자는 보통root
입니다. 상세한 접속 정보와root
기본 비밀번호는 ServBay 앱의 ‘데이터베이스’ 탭에서 확인 가능합니다. 최초 사용 시 반드시 비밀번호를 기록하거나 필요에 따라 변경하는 것을 권장합니다. - 데이터베이스 사용자 권한: 소스 MySQL 데이터베이스의 내보내기 권한과 ServBay MariaDB에 가져오기·데이터베이스 생성 권한이 있어야 합니다(일반적으로 ServBay MariaDB의
root
사용자는 해당 권한을 모두 가짐). - 터미널 접근 권한: 명령줄 터미널을 통해 데이터베이스 내보내기 및 가져오기 명령을 실행해야 합니다. 이 문서에 안내된 명령어 예시는 macOS 또는 Linux 터미널 환경을 기준으로 합니다.
1단계: 소스 MySQL 데이터베이스에서 데이터 내보내기
우선 mysqldump
도구를 사용하여 MySQL 데이터베이스를 SQL 파일로 내보냅니다.
- 터미널 실행: macOS의 터미널 앱을 실행하세요.
- 소스 MySQL 데이터베이스 접속:
터미널에서 다음 명령어를 입력하여 소스 MySQL 데이터베이스에 접속합니다. 비밀번호 입력이 요청됩니다.bashmysql -u your_mysql_username -p -h your_mysql_host -P your_mysql_port
1your_mysql_username
에 본인의 MySQL 사용자명을 입력하세요.your_mysql_host
는 MySQL 서버 주소(예:localhost
또는 IP 주소)로 변경하세요.your_mysql_port
는 MySQL 포트(기본값이 3306이 아니라면)를 적어주세요.- 만약 동일한 머신에서 MySQL을 실행 중이고 기본 포트를 쓴다면
mysql -u your_mysql_username -p
로 간단히 접속할 수 있습니다.
- 데이터베이스 내보내기:
mysqldump
명령어로 원하는 데이터베이스를 내보냅니다. 예시로 데이터베이스 이름이mydatabase
일 때,bashmysqldump -u your_mysql_username -p mydatabase > mydatabase.sql
1your_mysql_username
에는 본인의 MySQL 사용자명을,mydatabase
에는 내보낼 데이터베이스 이름을 입력하세요.- 해당 명령어는 데이터베이스 구조 및 데이터를 현재 경로의
mydatabase.sql
파일로 저장합니다. 필요하다면 전체 경로(예:/path/to/your/directory/mydatabase.sql
)를 지정할 수 있습니다. - 모든 데이터베이스를 내보내려면
--all-databases
옵션을 사용할 수 있지만 주의가 필요합니다. - 특정 테이블만 내보낼 경우 데이터베이스명 뒤에 테이블명을 추가하세요.
2단계: ServBay의 MariaDB 데이터베이스 준비
데이터를 ServBay의 MariaDB로 가져오기 전에, 해당 데이터가 저장될 빈 데이터베이스를 MariaDB에 생성해야 할 수 있습니다.
- 터미널 실행: 아직 터미널을 실행하지 않았다면 실행하세요.
- ServBay의 MariaDB 데이터베이스 접속:
ServBay MariaDB 접속 정보를 활용하여 연결하세요. 기본적으로root
사용자와 ServBay 앱에서 제공하는 비밀번호를 사용합니다.bashmysql -u root -p -h 127.0.0.1 -P 3306
1- ServBay MariaDB의
root
비밀번호 입력이 필요합니다. 비밀번호는 ServBay 앱 ‘데이터베이스’ 탭에서 확인할 수 있습니다. - 포트와 호스트를 수정했다면
-h
,-P
옵션을 해당 정보로 변경하세요.
- ServBay MariaDB의
- 새 데이터베이스 생성:
MariaDB 커맨드라인에서 다음 SQL로 새 데이터베이스를 만듭니다. 가능하다면 원본 MySQL DB명과 동일하게, 예를 들어mydatabase
로 생성하는 것이 좋습니다.sqlCREATE DATABASE mydatabase;
1mydatabase
를 원하는 데이터베이스명으로 교체하세요.
3단계: ServBay의 MariaDB로 데이터 가져오기
이제 앞서 내보낸 SQL 파일을 ServBay MariaDB의 새 데이터베이스로 가져올 차례입니다.
- 터미널 실행: 명령을 실행할 터미널에서
mydatabase.sql
파일에 접근 가능한지 확인하세요. 파일이 현재 디렉터리에 없다면 전체 경로를 사용해야 합니다. - SQL 파일 가져오기:
mysql
명령어를 이용해 SQL 파일을 ServBay MariaDB 데이터베이스로 가져옵니다.bashmysql -u root -p -h 127.0.0.1 -P 3306 mydatabase < mydatabase.sql
1- ServBay MariaDB의
root
비밀번호를 입력해야 합니다. mydatabase
는 2단계에서 생성한 데이터베이스명으로 바꿔주세요.mydatabase.sql
은 1단계에서 내보낸 파일명(또는 전체 경로)으로 변경하세요.
- ServBay MariaDB의
가져오기 작업은 SQL 파일 크기와 데이터베이스 복잡도에 따라 다소 시간이 소요될 수 있습니다. 명령 실행 중에는 출력이 거의 없을 수 있으니 참고하세요.
4단계: 데이터 가져오기 검증
가져오기가 끝나면 ServBay의 MariaDB에 접속해 데이터가 올바르게 들어왔는지 꼭 확인하세요.
- ServBay의 MariaDB 데이터베이스 접속:bash
mysql -u root -p -h 127.0.0.1 -P 3306
1- ServBay MariaDB의
root
비밀번호를 입력합니다.
- ServBay MariaDB의
- 데이터베이스 선택:sql
USE mydatabase;
1mydatabase
를 본인의 데이터베이스명으로 변경하세요.
- 데이터 조회: 간단한 조회 쿼리로 테이블과 데이터가 정상적으로 입력되었는지 확인하세요. 예시:sql
SHOW TABLES; -- 모든 테이블 목록 보기 SELECT COUNT(*) FROM your_table_name; -- 특정 테이블의 행 수 확인 SELECT * FROM your_table_name LIMIT 10; -- 특정 테이블의 앞 10개 행 조회
1
2
3your_table_name
을 실제 테이블명으로 변경하세요.
조회 결과가 정상이라면 데이터가 성공적으로 가져오기 완료된 것입니다.
발생할 수 있는 호환성 문제 대처
MariaDB와 MySQL은 대부분 호환되지만, 아래와 같이 일부 경우에는 호환성 이슈가 발생할 수 있습니다.
1. 특정 SQL 문법 미지원
드물게 MySQL에서만 지원하는 SQL 문법이나 함수가 MariaDB에서는 지원되지 않거나 동작이 다를 수 있습니다.
- 해결 방법:
가져오기 중 오류가 발생하면 내보낸mydatabase.sql
파일을 수동으로 편집해 문제되는 SQL 구문을 MariaDB에 맞게 수정해야 할 수 있습니다. MariaDB 공식 문서를 참고하면 대체 방법을 찾을 수 있습니다.
2. 스토리지 엔진 호환성
MySQL과 MariaDB는 InnoDB, MyISAM, Aria, XtraDB 등 여러 스토리지 엔진을 지원합니다. 하지만 일부 MySQL 전용 엔진(Archive, Blackhole 등)은 MariaDB에서 지원되지 않을 수 있고, 반대도 마찬가지입니다. 다만 InnoDB
는 양쪽 모두에서 잘 지원됩니다.
- 해결 방법:
MariaDB에서 지원하지 않는 스토리지 엔진을 사용한 경우 가져오기 도중 경고나 오류가 발생할 수 있습니다. 이 경우.sql
파일에서 문제가 되는 엔진명을 MariaDB가 지원하는 것으로(예:ENGINE=InnoDB
) 바꾸거나,
가져온 후 MariaDB에서 다음 명령으로 한 테이블씩 엔진을 변경할 수 있습니다:ALTER TABLE table_name ENGINE = InnoDB;
3. 사용자 및 권한
mysqldump
로 내보낸 SQL 파일에는 사용자 계정 및 권한 정보가 보통 포함되지 않습니다. 설령 있다 해도 MySQL과 MariaDB의 인증 및 권한 시스템이 다를 수 있어 사용자 테이블을 바로 가져오면 오류가 날 수 있습니다. ServBay의 MariaDB에는 기본적으로 root
계정이 제공되며, DB 관리 및 새로운 계정 생성을 위해 이 계정을 사용해야 합니다.
- 해결 방법:
데이터 가져오기 후 애플리케이션에서 필요한 DB 사용자 계정을 ServBay의 MariaDB에서 새로 만들고, 권한을 부여해야 합니다. ServBay MariaDB에 접속해 아래와 같은 표준 SQL로 처리할 수 있습니다:sql-- 새 사용자 생성 ('your_username', 'localhost', 'your_password'는 적절히 바꿔주세요) CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password'; -- 특정 데이터베이스 전체 권한 부여 GRANT ALL PRIVILEGES ON mydatabase.* TO 'your_username'@'localhost'; -- 권한 새로 고침 FLUSH PRIVILEGES;
1
2
3
4
5
6
7
8your_username
,localhost
(애플리케이션 연결 방식에 따라localhost
또는%
),your_password
,mydatabase
값을 실제 상황에 맞게 교체하세요.- 만약 ServBay MariaDB의
root
비밀번호를 분실했다면 ServBay 앱 또는 공식 문서에서 MariaDB와 PostgreSQL을 포함한 DBroot
비밀번호 재설정 기능을 활용하실 수 있습니다.
요약
기존 MySQL 데이터베이스의 데이터를 ServBay 내장 MariaDB로 가져오는 과정은 ServBay 환경으로 개발 워크플로우를 옮기기 위한 중요한 단계입니다. 이 과정은 mysqldump
로 소스 데이터 내보내기, ServBay MariaDB에서 대상 DB 생성, mysql
명령어로 SQL 파일 가져오기, 그리고 결과 검증 등의 절차로 구성됩니다. 이 문서에서 안내한 상세 단계와 잠재적 호환성 이슈 대응법을 따라 하시면, 데이터베이스 마이그레이션을 문제없이 마치고 ServBay에서 웹 개발을 계속 효율적으로 진행할 수 있습니다.