AWS RDS에 Data Import 하기
도커 수업 중, 실수로 기존 진행하던 프로젝트의 RDS로 CREATE 를 하는 상황이 나왔다. 다행히 SQL 파일들을 백업해놔서 Data를 Import 만 하면 되는 문제라서 별 대수롭지 않게 생각했다.
그러다가, Import를 하는 순간 바로 등장하는 에러들... 바로 권한이 없다는 에러였다.
에러 내용
User ERROR 1227 (42000) at line 18: Access denied; you need (at least one of) the SUPER, SYSTEM_VARIABLES_ADMIN or SESSION_VARIABLES_ADMIN privilege(s) for this operation
인터넷에서 찾아보니 파라미터 그룹을 변경하는 방법이 있었다. default로 설정된 파라미터가 아닌, 새로운 파라미터 그룹을 생성하여, log_bin_trust_function_creators
값을 0에서 1로 설정하고, 데이터베이스의 파라미터를 생성한 파라미터로 바꾸면 SUPER 권한을 획득할 수 있다고 나와있는 글이 많았다.
하지만, 그렇게 해서 Data를 Import 하는 순간, 권한 에러는 동일하게 등장하였다. 그래서 더 검색을 하다가 찾은 방법이 있어서 정리해놓는다.
밑에는 sql 파일 예시이다. 여기서 내가 표시한 부분을 주석처리해준뒤 다시 시도하면 정상적으로 Import가 될 것이다.
-- MySQL dump 10.13 Distrib 8.0.34, for Win64 (x86_64)
--
-- Host: Database:
-- ------------------------------------------------------
-- Server version 8.0.33
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
-- SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN; 🔥주석처리🔥
-- SET @@SESSION.SQL_LOG_BIN= 0; 🔥주석처리🔥
--
-- GTID state at the beginning of the backup
--
-- SET @@GLOBAL.GTID_PURGED=/*!80000 '+'*/ ''; 🔥주석처리🔥
--
-- Table structure for table `Branch`
--
DROP TABLE IF EXISTS `Branch`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `Branch` (
`branchIdx` int NOT NULL AUTO_INCREMENT,
`branchAddress` varchar(100) DEFAULT NULL,
`branchName` varchar(30) DEFAULT NULL,
`Brand_idx` int DEFAULT NULL,
PRIMARY KEY (`branchIdx`),
UNIQUE KEY `UK_h45erxkc1j4l8opvjqqiy8gg4` (`branchAddress`),
UNIQUE KEY `UK_cgvrh0291250ua04j1ajx1rgw` (`branchName`),
KEY `FKtnn3wlycc2cy5j4rxa7gv74bi` (`Brand_idx`),
CONSTRAINT `FKtnn3wlycc2cy5j4rxa7gv74bi` FOREIGN KEY (`Brand_idx`) REFERENCES `Brand` (`brandIdx`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `Branch`
--
LOCK TABLES `Branch` WRITE;
/*!40000 ALTER TABLE `Branch` DISABLE KEYS */;
/*!40000 ALTER TABLE `Branch` ENABLE KEYS */;
UNLOCK TABLES;
-- SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN; 🔥주석처리🔥
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2024-02-04 17:09:01
앞으로도 AWS의 RDS를 사용할 일이 많을텐데, 사람은 실수하기 마련이기 때문에, 백업도 하고 하지만 별도의 자동백업 설정을 해놓지 않았다면 나처럼 sql 파일들을 그때그때 보관하고 있을 것이다.
그럴때, 해결하기 위해 이 내용을 정리해 놓는다.