MacOS를 사용하고 싶은 비공자

[ Mac M1 ] 터미널에서 MySQL 서로 다른 데이터베이스들의 테이블 이관 및 복사하기 ( DB 환경설정 [5] )

차세대 IT 리더 비공자 2024. 1. 27. 21:14

 
 
안녕하세요, 차세대 IT리더가 되고픈 비공자입니다.
오늘은 주말이라서 공부를 정말 많이 하고 있어요~
여러분들도 주말에 저처럼 몰아서 공부를 하시나요^^..
저는 평일엔 일을 하다 보니 주말을 많이 활용해요!
여러분들은 주말엔 무엇을 하는지 궁금해지네요~
오늘도 저와 함께 열심히 공부를 하셨으면 좋겠습니다!
 
 
[ 오늘의 목차 ]
1. 데이터베이스 변경에 대한 설명
     1-1. 데이터베이스 확인
2. root(관리자) 계정 로그인
     2-1. 이관할 데이터베이스 생성 및 확인
3. 데이터베이스 이관 작업 시작
     3-1. 새로운 데이터베이스 권한 부여

4. 서로 다른 데이터베이스 복사 작업하기

     4-1. 테이블 구조 복사하기

     4-2. 테이블 데이터 복사하기

     4-3. 복사된 테이블과 데이터 확인
 
 
 
[ 1. 데이터베이스 변경에 대한 설명 ]
우선 데이터베이스를 변경을 하기 위해서는
최근에는 신규 데이터베이스를 생성 후,
기존 데이터베이스의 테이블을
신규로 생성한 데이터베이스에 이관하는 방식으로

진행을 많이 한다고 합니다.
그래서~
저도 위와 같은 방식으로 데이터베이스를
변경해 보도록 하겠습니다!!

이제는 여러분들도 딱 명령어만 봐도
무엇을 하는지 바로 이해가 되시겠지요 하하하하..
( 반복은 역시 나를 실망시키지 않는다!!! )
 
 
 
[ 1-1. 데이터베이스 확인 ]
[ 데이터베이스 목록 호출 명령어 ]
=> show databases;

이번에 DEV_DB의 테이블을 이관을 하려고 해서
이관 대상인 데이터베이스의 명은 "TB_DB"입니다.
( 기존 대상 ) DEV_DB => ( 이관 대상 ) TB_DB
( 데이터베이스 이관 작업 진행 예정 )
 
 
 
 
[ 2. root(관리자) 계정 로그인 ]
[ root 계정 로그인 하기 명령어 ]
=> mysql -u root -p;
( 데이터베이스를 변경하려면 먼저
   root(관리자) 계정으로 접근을 해야 합니다. )

root(관리자) 계정으로 로그인
 
 
 
 
[ 2-1. 이관 대상 데이터베이스 생성 및 확인 ]
[ 데이터베이스 생성 명령어 ]
=> create database 데이터베이스 명;

TB_DB 생성 ( TB_DB 생성완료 )

 
 
 
 
[ 3. 데이터베이스 복사 이관 작업 시작 ]
[ 데이터베이스의 테이블 이관 명령어 ]
=> RENAME TABLE 
       기존 데이터베이스.기존 테이블 명 to 
       신규 데이터베이스 새로운 테이블 명

테이블 명은 신규로 만들어도 괜찮고,
기존에 사용하던 테이블 명으로 하셔도 됩니다.
 

[ 4번. 데이터베이스 접속 명령어 ]
=> use 데이터베이스 명;
[ 5번. 테이블 확인 명령어 ]
=> show tables;
[ 6번. 테이블 구조 확인 명령어 ]
=> desc 테이블 명;
( 정상적으로 테이블을 가져오는 것 확인! )
 
 
 
 
[ TB_DB로 이관된 테이블 데이터 확인 ]
[ 테이블 조회 명령어 ]
=> select * from 테이블 명;

 
 
[ 기존 데이터베이스 삭제 ]

이제 테이블을 이관 작업을 했기 때문에

DEV_DB에는 이제 테이블이 존재하지 않아요!

[ 데이터베이스 삭제 명령어 ]
=> drop database 데이터베이스 명

기존 데이터베이스 삭제완료!
 
 
[  3-1. 이관된 데이터베이스 권한 부여 ]
[ 데이터베이스 모든 권한 부여 명령어 ]
=> grant all on 데이터베이스 명.*
      to '유저 명'@'호스트 명'

마지막으로 TB_DB의 모든 권한을
사용자 계정에게 모든 권한을 부여합니다!
 

 

 

[ 4. 서로 다른 데이터베이스 복사 작업하기 ]

[ 복사할 테이블 구조 생성 명령어 ]

=> create table 신규 데이터베이스.테이블 명

       Like 기존 데이터베이스.테이블 명

 

[ 테이블 데이터 복사 명령어 ]

=> INSERT INTO 신규 데이터베이스.테이블

       SELECT * FROM 기존 데이터베이스 테이블

 

[ 복사된 테이블과 데이터 확인 ]

=> use DEV_DB;

=> show tables;

=> select * from test_table;

 

 

 


[ 마지막 정리 ]
1. [ 데이터베이스 목록 호출 명령어 ]
=> show databases;
 
2. [ root(관리자) 계정 로그인 하기 명령어 ]
=> mysql -u root -p;
 
3. [ 데이터베이스 생성하기 명령어 ]
=> create database 데이터베이스 명;
 
4. [ 데이터베이스의 테이블 이관 명령어 ]
=> RENAME TABLE 
       기존 데이터베이스 테이블 명 to 
       신규 데이터베이스 테이블
 
5. [ 데이터베이스 접속 명령어 ]
=> use 데이터베이스 명;
 
6. [ 테이블 확인 명령어 ]
=> show tables;
 
7. [ 테이블 구조 확인 명령어 ]
=> desc 테이블 명;
 
8. [ 테이블 조회 명령어 ]
=> select * from 테이블 명;
 
9. [ 데이터베이스 삭제 명령어 ]
=> drop database 데이터베이스 명

 

10. [ 복사할 테이블 구조 생성 명령어 ]

=> create table 신규 데이터베이스 테이블 명

       Like 기존 데이터베이스.테이블 명

 

11. [ 테이블 데이터 복사 명령어 ]

=> INSERT INTO 신규 데이터베이스.테이블

       SELECT * FROM 기존 데이터베이스.테이블 
 
 
 오늘은 서로 다른 데이터베이스 간에

테이블 이관 하는 작업과 테이블 복사하는 작업을

했습니다. 형상관리로 치면 checkout 하는 느낌?

그렇게 생각해 주시면 좋을 것 같아요~!

 
 
그럼...
 
 
오늘도 저의 포스팅을 읽어주셔서 정말 감사합니다.