본문으로 바로가기

mysql dump

category [ 서버 & DB 관련 ]/MySQL 2019. 10. 30. 14:23

 

원격 접속시

# mysql -h 서버주소 -u root -p

 

 

DB백업

> mysqldump -u DB계정 -p DB명 > 경로/저장할 파일명.sql

 

또는 

 

> mysqldump -h 서버주소  -u DB계정 -p DB명 > 경로/저장할 파일명.sql

 

 

DB복원 - DB먼저 생성 후

CREATE DATABASE DB명 default CHARACTER SET UTF8;

SHOW DATABASE 확인 

> mysql -u DB계정 -p DB명 < 경로/저장할 파일명.sql

 

=> 이미 테이블이 있다면 업데이트 됨

 

 

특정 테이블만 백업

> mysqldump -u DB계정 -p DB명 테이블명 > 경로/저장할 파일명.sql

 

특정 테이블만 복원 (DB복구와 동일한 명령, 테이블의 데이터는 복원하는 데이터로 변경, 구조도 함께 변경)

> mysql -u B계정 -p DB명 < 경로/저장할 파일명.sql

 

 

AWS 

- 백업
> mysqldump -h엔드포인트 --set-gtid-purged=OFF -u계정 -p -v 디비명 > 경로/저장할 파일명.sql

 

--set-gtid-purged=OFF 이 메소드가 문제라면 뺴도됨

 

- 복원

> mysql -h엔드포인트  -u계정 -p 디비명 < 경로/저장할 파일명.sql

 

- 복원 (AWS 인스턴스 에서)
> sudo mysql --login-path=설정명 디비명 < 파일명.sql

 

DB 접속 설정하기

$ sudo mysql_config_editor set --login-path={설정명} --host={엔드포인트} --user={계정명} --password
Enter password: {패스워드를 입력}

 

 

 

 

DB확인

mysql> show databases;

 

Table 확인

mysql> use [DB명];

mysql> show tables;

 

=============

 

사용자 계정 생성

 

# 계정 생성
# localhost, % 또는 특정 ip가 호스트로 사용됨
create user '사용자계정'@'localhost' identified by '비밀번호';

# DB 권한 부여
grant all privileges on *.* to '사용자계정'@'localhost'; -- 모든 DB에 권한 부여
grant all privileges on DB명.* to '사용자계정'@'localhost'; -- 특정 DB에 권한 부여

# 계정 생성과 함께 권한 부여
grant all privileges ON DB명.* to '사용자계정'@'localhost' identified by '비밀번호' ;
-- (local접속만 허용하는 [사용자계정] 사용자에게 [DB명] 데이터베이스에 대한 select,insert,update,delete,create,drop,index,alter 권한을 추가)

# 기존 계정에 개별 권한 추가
grant select,insert,update,delete,create,drop,index,alter ON DB명.* to '사용자계정'@'localhost' ;
-- local접속만 허용하는 test2 사용자에게 test 데이터베이스에 대한 select,insert,update,delete,create,drop,index,alter 권한을 추가
-- * 누적으로 추가가 됨

/*
ALL - 모든 권한 부여
ALTER - ALTER TABLE 사용 가능
CREATE - CREATE TABLE 사용 가능
CREATE TEMPORARY TABLES - CREATE TEMPORARY TABLES 사용 가능
SELECT, DELETE, UPDATE, DROP - 조회,수정,삭제 권한 가능
EXCUTE - 실행권한
FILE - SELECT.. INTO OUTFILE LOAD DATA INFILE 사용 가능
INDEX - CREATE INDEX , DROP INDEX 가능
LOCK TABLES - SELECT 권한있을 때 LOCK TABLES 가능
PROCESS - SHOW FULL PROCESSLIST 가능
SHUTDOWN - SHUTDOWN 가능
SHOW DATABASES - SHOW DATABASES 가능
RELOAD - FLUSH 가능
*/


# 계정 삭제
drop user '사용자계정'@'localhost';


-- 변경사항 적용
flush privileges;

 

# 사용자 확인
use mysql;
select user, host from user;


# 사용자 권한 확인
SHOW GRANTS FOR '사용자계정'@'호스트';
SHOW GRANTS FOR CURRENT_USER; -- (현재 접속된 사용자 권한 확인)

 

패스워드 변경

use mysql;

// mysql 5.x
update user set password=password('1234') where user='root';
update user set authentication_string=password('1234') where user='root';

// mysql 8.x
alter user 'root'@'localhost' identified with mysql_native_password by '1234;

-- 변경사항 적용
flush privileges;

 

 

 

 

 

https://java.ihoney.pe.kr/215

 

MySQL mysqldump 를 이용해서 export하고,dump 파일 Import 하기

회사에서 업무를 위해 DB에 저장하는 기초데이터 중 우편번호와 관련된 데이터는 빅데이터가 아닐까? 입려된 데이터의 건수로는 대략 6백7만건에 달하는 양이라서, insert 쿼리의 용량만 2기가에 달하는 녀석이기..

java.ihoney.pe.kr

https://kssong.tistory.com/2

 

MySQL Dump / Import

MySQL 덤프 / 임포트 1. dump 1.1 전체 dump $>mysqldump -u [사용자아이디] -p 데이타베이스명 > 저장될 파일명.sql 예) mysqldump -uroot -p data > data.sql 1.2 테이블만 dump $>mysqldump -u [사용자아이디]..

kssong.tistory.com

https://zetawiki.com/wiki/MySQL%EB%8D%A4%ED%94%84_mysqldump

 

MySQL덤프 mysqldump - 제타위키

다음 문자열 포함...

zetawiki.com