나는 현재 체인점을 관리하는 시스템을 운영하고있다.. 

매장이 새로 생길때마다 같은 데이터를 넣어주기도 하고, 다른 데이터를 넣어주기도 한다.

이번엔 같은 데이터를 넣어주는 경우를 위해 기록해둔다. 

 

1. 복사할 데이터 추리기 

SELECT * FROM  MY_CONFIG WHERE  SHOP_NUM = 1;

2. 임시 테이블 생성하여 복사하고 싶은 값들만 넣어둔다, 

CREATE TABLE  MY_TEMP AS SELECT * FROM  MY_CONFIG WHERE  SHOP_NUM = 1;

3. 기존 테이블의 마지막 시퀀스 값을 조회해본다. 

SELECT MAX(MY_SEQ)  FROM  MY_CONFIG;

4. 마지막 시퀀스 값이 100이라고 한다면 101부터 증가시켜준다. 

SELECT @incre:=100; 

UPDATE MY_TEMP SET MY_SEQ=@incre:=@incre+1 ORDER BY MY_SEQ;

5.  기존 테이블을 백업하고 준비된 값을 기존 테이블에 INSERT 한다.

-- 기존 테이블 백업 
CREATE MY_CONFIG_230912 AS SELECT * FROM MY_CONFIG WHERE 1=1; 

-- 데이터 입력
INSERT INTO MY_CONFIG SELECT * FROM MY_TEMP ;

 

`

MySQL PK를 변경방법

alter table 테이블명 drop primary key;

alter table 테이블명 add primary key(컬럼1, 컬럼2, 컬럼3);

 

기존에 사용중이던 DB를 새로운 DB에 복사해야하는 작업을 진행해보자~~ 

이 방법을 알면 DB를 백업하고 복원할 수 도 있다~

 

myDatabase ----> targetDatabase로 복사해보자!! 


1. 우선 DB 서버에 접속해야한다. 

DB가 설치되어있는 서버에 접속!!  접속툴은 자기가 쓰는거 아무거나 쓰면 된다.

 

 


2. mysql이 설치된 경로로 이동한다. 

보통 /usr/local/mariadb 경로에 설치되어있다.

cd /usr/local/mariadb

 

3. 경로로 들어와보면 data라는 디렉토리가 있다. 여기에 내 DB와 데이터가 들어있다. 

디렉토리 목록을 조회하는 명령어로 출력해보자.  아래 이미지와 같이 내 DB 가 출력되는걸 볼 수 있다.  "myDatabase" 

ls -al

 

4. 덤프작업을 해준다. 

덤프란 insert into 형식으로 현재 데이터테이블의 구조와 입력된 레코드를 저장하는 방법입니다. 


* 전체 데이터베이스 백업
DB 서버내 존재하는 모든 데이터베이스를 백업하고자 하면 터미널에서 다음과 같이 명령해주면 됩니다. 

mysqldump -u[아이디] -p[패스워드] --all-databases > [백업파일명].sql

ex) mysqldump -utest -p1234 --all-databases > backup_myAllDatabase.sql

 


*  하나의 데이터베이스 백업 
여러 데이터베이스 중에서 하나의 데이터베이스만 백업하고 싶다면 다음과 같이 명령해주면 됩니다. 

mysqldump -u[아이디] -p[패스워드] [데이터베이스명] > [백업파일명].sql
ex) mysqldump -utest -p1234 myDatabase > backup_myDatabase.sql

 

5. ls -al 명령어로 덤프 파일이 잘 생성되었는지 확인한다. 

 

 

6. 덤프파일을 내가 원하는 DB에 넣는다. (백업할 때와 꺽쇠의 방향이 반대이니 주의하세요. )

* 전체 데이터베이스

mysql -u[아이디] -p[패스워드] < [백업파일명].sql
ex) mysqldump -utest -p1234 < backup_myAllDatabase.sql


 
* 하나의 데이터베이스 
mysql -u[아이디] -p[패스워드] [데이터베이스명] < [백업파일명].sql

 

ex) mysqldump -ukyohoonsim -p1234 test < backup_test_db.sql

mysql -u[아이디] -p[패스워드] [데이터베이스명] < [백업파일명].sql

ex) mysqldump -utest -p1234 targetDatabase < backup_myDatabase.sql

 

 

자 이제 DB에 접속해보면 

끝!! 

+ Recent posts