본문 바로가기

Database/MySQL

(8)
MySQL 데이터베이스 이름 변경 MySQL 데이터베이스 이름 변경 방법입니다. AWS RDS에서 변경 시 아래와 같이 변경합니다. 새로운 데이터베이스를 생성하고, 모든 테이블에 대해 Rename 해줍니다. CREATE DATABASE new_db; RENAME TABLE old_db.table1 TO new_db.table1; RENAME TABLE old_db.table2 TO new_db.table2; 테이블이 많을 경우 일괄 변경하기 위한 쿼리입니다. SELECT concat('RENAME TABLE ',TABLE_SCHEMA,'.',TABLE_NAME,' TO ','new_db.',TABLE_NAME,';') FROM information_schema.tables WHERE TABLE_SCHEMA LIKE 'old_db'; 위 ..
CentOS 7.6버전에 MySQL 8.0 버전 설치 [환경] homedb : 10.100.10.11 -- 접속 ssh admin@10.100.10.11 예시: admin / 암호, 나중에 변경 -- 리눅스 버전확인 shell> cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) MySQL rpm 최신 버전 확인 https://dev.mysql.com/downloads/repo/yum/ MySQL :: Download MySQL Yum Repository Support EOL for Fedora 37 Per the MySQL Support Lifecycle policy regarding ending support for OS versions that have reached end of life, we..
AWS RDS MySQL 마스터 권한 부여하기 Amazon RDS MySQL이나 Aurora MySQL에서 root (마스터) 권한을 부여하는 방법입니다. 초기 구성시 하나의 마스터 사용자 계정을 만들 수 있으며, 추가로 권한이 필요한 계정이 있으면 아래와 같은 절차로 권한을 부여할 수 있습니다. DB 접속해서 SHOW GRANTS으로 현재 마스터 사용자 계정의 권한 목록을 가져옵니다. SHOW GRANTS for master_username 아래와 같은 결과가 출력됩니다. +-----------------------------------------------------------------------------------------------------------------------------------------------------------..
MySQL 파티션 테이블 MySQL 파티션 테이블에 대한 부분을 설명합니다. 기존 데이터가 있는 테이블에 Range 파티션을 만들어서 데이터를 분리하고, 신규 데이터에 대해 파티션이 적용되게 하며, 필요에 따라 파티션을 추가하거나, MaxValue로 구성된 파티션을 분리하거나 두 개 이상의 파티션을 병합하는 방법을 설명합니다. 테이블 복사하기 파티션을 운영에 적용하기 전 해당 테이블을 복사해서 테스트한 후 적용하는 것을 권장합니다. 테이블을 복사하는 방법으로 CTAS를 많이 이용하지만 제약조건이 복제되지 않아 해당 내용을 아래 설명합니다. 일반적인 CTAS를 이용해서 테이블을 복사하면 제약조건이 포함되지 않습니다. create table b as select * from a; 별도로 PK, 인덱스와 같은 제약조건을 생성해 줘야 ..
MySQL Workbench 설치 및 사용 방법 MySQL Workbench 설치 및 사용방법에 대해 알아보겠습니다. RDMBS를 사용하면서 많은 Tools 들을 사용합니다. Oracle의 SQL Developer, SQL Server의 SSMS(SQL Server Management Studio), MySQL의 MySQL WorkBench, PostgreSQL의 PgAdmin 등을 대표적으로 사용하고, 무료 툴인 Dbeaver도 많이 사용합니다. 여러 가지 DB를 제공하는 Dbeaver를 사용하다가 요즘에는 각 DB별로 각각의 툴을 사용하고 있습니다. 이번에는 MySQL WorkBench에 대해 알아보겠습니다. 다운로드 및 설치 다운로드는 mysql.com 공식사이트에서 받으면 됩니다. 현재 8.0.34 버전이 최신버전입니다. https://dev...
mysqldump 유틸리티 사용하여 테이블 이관 방법 일반적으로 MySQL을 이관하는 경우 mysqldump 유틸리티를 사용합니다. 특정 데이터베이스를 이관할 때 테이블을 제외하거나 procedure, function을 제외하는 옵션들이 있습니다. 또한 타깃 데이터베이스명이 다를 경우나 일부 RDS에서 지원하지 않는 기능들로 인해 오류가 발생되기도 합니다. 덤프파일이 작을 경우는 텍스트편집기로 읽어서 덤프파일의 내용을 수정하거나, 일부 내용을 삭제가 가능한데, 용량이 큰 경우 곤란한 경우가 발생됩니다. 한글이 깨지거나, 덤프파일을 받는 경우 table meta lock이 발생되지 않게 하는 경우도 있습니다. 아래 옵션은 제가 자주 사용하는 옵션으로 일부 내용만 바꿔서 사용하면 정상적으로 실행될 것 같습니다. mysqldump -h abcde.cluster-..
MySQL Event Scheduler 생성 절차 MySQL Event Scheduler를 생성하는 절차는 다음과 같습니다. Event Scheduler를 사용하면 주기적으로 작업을 예약할 수 있습니다. 이를 통해 일정 간격으로 쿼리를 실행하거나 특정 작업을 자동으로 수행할 수 있습니다. Event Scheduler 활성화 확인 MySQL 서버의 event_scheduler 시스템 변수가 활성화되어 있는지 확인합니다. 이 변수가 활성화되어 있어야만 이벤트 스케줄러를 사용할 수 있습니다. SHOW VARIABLES LIKE 'event_scheduler'; 만약 event_scheduler가 ON이 아니라면, 다음 쿼리를 사용하여 활성화할 수 있습니다. SET GLOBAL event_scheduler = ON; 이벤트 생성 이벤트를 생성하기 위해 CREA..
MySQL 성능 향상을 위한 Parameter 이러한 파라미터 설정은 각각의 시나리오 및 요구 사항에 따라 다를 수 있으며, 변경 전에 백업을 만들고 테스트하는 것이 중요합니다. MySQL의 문서와 모니터링 도구를 통해 실시간으로 성능을 모니터링하면서 조정하는 것이 좋습니다. MySQL의 성능을 향상하기 위해서는 여러 가지 파라미터를 조정하고 최적화하는 것이 중요합니다. 아래는 MySQL의 주요 파라미터와 각각의 간단한 설명 및 설정에 대한 안내입니다. innodb_buffer_pool_size InnoDB 스토리지 엔진의 데이터와 인덱스를 캐싱하는 데 사용되는 메모리 풀 크기입니다. 적절한 크기로 설정하여 자주 액세스되는 데이터를 메모리에 보관합니다. 일반적으로 전체 메모리의 70-80%를 할당합니다. innodb_log_file_size Inno..