본문 바로가기

리눅스

MySQL 데이터베이스 마이그레이션하는 방법

반응형

MySQL 데이터베이스 마이그레이션하는 방법

MariaDB 10.3.28(RackTables 0.21.4)에서 MySQL 8.0.40(RackTables 0.22.0)으로 마이그레이션하는 방법입니다.

기존 시스템 백업(필수)

데이터베이스 백업

  • mysqldump를 사용하여 MariaDB 데이터베이스를 백업합니다. 모든 테이블과 데이터를 포함하는 전체 백업을 수행하는 것이 좋습니다.
mysqlpump -u [사용자명] -p[비밀번호] [원본_데이터베이스명] > backup.sql
mysqldump -u root -p'your_mariadb_password' racktables_db > racktables_db_backup.sql

RackTables 파일 백업

  • RackTables 설치 디렉터리 전체를 백업합니다.
tar -czf racktables_files_backup.tar.gz /path/to/racktables

스키마 직접 비교

스키마 덤프 생성

  • RackTables 0.21.4 스키마 덤프
mysqldump -u root -p racktables_db --no-data > schema_0.21.4.sql
  • RackTables 0.22.0 스키마 덤프
mysqldump -u root -p racktablesdb --no-data > schema_0.22.0.sql

비교

colordiff schema_0.21.4.sql schema_0.22.0.sql

데이터베이스 사용자 이름 변경

sed -i.bak "s/DEFINER=\`racktables_user\`/DEFINER=\`racktables\`/g" schema_0.22.0.sql

1. 새 MySQL 서버에 RackTables 데이터베이스를 생성

문자 집합은 utf8mb4로 설정하는 것을 권장합니다. 콜레이션은 utf8mb4_unicode_ci를 권장합니다.

CREATE DATABASE racktablesdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

2. 데이터베이스 복원

이전에 백업한 SQL 파일을 사용하여 새 MySQL 데이터베이스에 데이터를 복원합니다.

mysql -u [사용자명] -p[비밀번호] [대상_데이터베이스명] < backup.sql
mysql -u root -p'your_mysql_password' racktablesdb < racktables_db_backup.sql

3. 문자 집합 및 콜레이션 변경 (권장)

데이터 복원 후, 모든 테이블의 문자 집합과 콜레이션을 utf8mb4 및 utf8mb4_unicode_ci로 변경합니다.

ALTER DATABASE racktablesdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 모든 테이블에 대해 다음 쿼리 실행
ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

4. RackTables 0.22.0 설치

5. SQL 모드 확인 및 설정

MySQL 서버의 SQL 모드를 확인합니다.

SELECT @@GLOBAL.sql_mode;

ONLY_FULL_GROUP_BY 모드가 활성화되어 있다면, RackTables 애플리케이션에서 SQL 오류가 발생할 수 있습니다. 가능한 한 애플리케이션 코드를 수정하여 이 모드에 맞추는 것이 좋지만, 임시적으로 SQL 모드를 변경할 수도 있습니다.

  • 권장하지 않음
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

애플리케이션 코드 수정이 어렵다면, MySQL 설정 파일 (my.cnf 또는 my.ini)에서 sql_mode 설정을 변경할 수 있습니다

6. RackTables 설정 파일 수정

RackTables 설정 파일 (inc/secret.php)을 수정하여 데이터베이스 연결 정보를 업데이트합니다.

7. 웹 서버 설정

웹 서버 (Apache, Nginx 등) 설정을 업데이트하여 RackTables 0.22.0을 서비스하도록 설정합니다.

 

728x90
반응형