개발 환경이 변경되거나 솔루션을 판매할때 플랫폼에 필요한 시스템 데이터를 세팅해야 될 경우가 있다. 이를 위해 필요한 내용에 대해서 간단히 살펴보겠다.
Contents
- Workbench를 활용하여 MySQL 5.7에 저장된 데이터를 export & import 하는 방법
- 마스터 유저생성 및 권한할당
- 스카마 이름을 변경하는 방법
How to Export
- Data Export to Self-Contained File
- Advanced Options → set-gtid-purged → OFF 설정
3. Export!
4. View를 사용한다면 xxx.sql을 열고, DEFINER의 계정을 확인하자. Import 하고자하는 계정으로 설정!
/*!50013 DEFINER=admin@% SQL SECURITY DEFINER */
Import
- Import from Self-Contained File
- Default Target Schema : 데이터베이스가 생성되어 있지않다면 생성하자.
- Import!
마스터 유저 생성 및 권한 할당
mysql> SHOW GRANTS for master_username; # 권한 확인
mysql> CREATE USER 'new_master_user'@'%' IDENTIFIED BY 'password'; # 새로운 마스터 유저 생성, 외부에서의 접근을 허용
mysql> GRANT ALL PRIVILEGES ON schema_name.* TO 'new_master_user'@'%' IDENTIFIED BY 'password'; # 모든 원격지에서의 schema_name 스키마의 모든 테이블에 대해서 new_aster_user 유저에게 모든 권한을 부여
스키마 이름 변경
RENAMTE TABLE Statement
RENAME TABLE
tbl_name TO new_tbl_name
[, tbl_name2 TO new_tbl_name2] ...
todos -> self_todolist 예시
RENAME TABLE todos.company TO self_todolist.company,
todos.todo TO self_todolist.todo,
todos.todo_has_ref TO self_todolist.todo_has_ref,
todos.user TO self_todolist.user,
todos.user_auth TO self_todolist.user_auth,
todos.user_grp TO self_todolist.user_grp,
todos.user_role TO self_todolist.user_role,
todos.user_role_has_user_auth TO self_todolist.user_role_has_user_auth
출처
- https://dev.mysql.com/doc/refman/5.6/en/rename-table.html
- https://www.quora.com/How-can-I-rename-a-schema-with-MySQL-Workbench-using-MySQL-5-6
- https://nickjoit.tistory.com/144
- https://aws.amazon.com/ko/premiumsupport/knowledge-center/duplicate-master-user-mysql/