본문 바로가기
sql/mysql

mysql dump

by choi-dev 2024. 5. 13.

mysql을 통해 데이터베이스를 덤프 띄워서 로컬에 따로 저장하여 개발하는 환경을 구축해야될 이유가 생겨 덤프하는 과정을 적어두려고 한다.

 

Mysql 설정

현재 mac을 사용하는 환경으로 Homebrew를 사용해 mysql을 설치했다. 설치 과정에서 기본적인 설정 값을 입력하지 않아 root 계정이 존재하지 않았고 이 부분을 추가해주었다.

 

brew install mysql

만약 mysql을 삭제하고 다시 시작하는 사람은 아래 과정을 먼저 진행한다.

 

brew services stop mysql
brew uninstall mysql

이 과정을 먼저 진행해주고 mysql을 재설치한다.

 

mysql.server start

mysql을 실행시킨다.

 

mysql_secure_installation

다음 명령어를 실행시킨다. 실행시키면 몇가지 과정이 나타나게 된다.

 

...VALIDATE PASSWORD component? # 비밀번호 복잡도 검사 과정
n
# 비밀번호 입력 및 확인
...Remove anonymous users? # 익명 사용자 삭제
y
...Disallow root login remotely? # 원격 접속 허용 여부
y
...Remove test database and access to it? # test 데이터베이스 삭제 여부
n
...Reload privilege tables now? # previlege 테이블을 다시 로드할 것인지 여부 
y

# 이후
All done!

다음과 같이 입력한다. 해당은 예시문으로 본인의 환경에 적절히 y 또는 n을 입력한다.

 

Mysql Dump

설정을 완료했으면 덤프를 진행한다. 나같은 경우에는 Desktop에 저장될 수 있도록 디렉토리의 위치를 변경했다.

 

# mysqldump를 사용한다.
mysqldump -h [hostname] -P [port] -u [username] -p [database] > [database after dump]

hostname은 본인이 가져오려는 데이터베이스의 호스트, port는 해당 포트번호, username은 해당 계정 이름, database는 해당 데이터베이스 이름, database after dump는 덤프하고 가져올 데이터베이스 이름을 의미한다. 참고로 해당 데이터베이스에 패스워드가 존재한다면 위와 같이 -p를 입력해 따로 패스워드를 입력받을 수 있도록 한다.

 

pwd

정확한 경로를 얻어야하기 때문에 pwd 명령어를 사용한다.

 

mysql -u root -p [database after dump] < [location by pwd]

database after dump에는 dump했던 데이터베이스의 이름, location by pwd는 상단에 pwd를 통해 얻은 파일의 경로를 입력해주면 된다.

 

이후로는 본인이 사용하는 디비툴이나 쉘을 통해서 올바르게 되었는지 확인하면 된다.

 

추가

덤프한 데이터를 넣을 때 문제가 No database selected라는 에러가 난다거나 할 수 있다. 덤프한 데이터를 직접 넣어줄 때 문제가 발생한다면 다음을 따라해본다.

 

mysql -u root -p

bash나 zsh에서 mysql에 접속한다.

 

show databases;

데이터베이스를 확인해보고 본인이 넣을 이름의 데이터베이스를 하나 생성해준다.

 

CREATE DATABASE "만들 데이터베이스 이름"

생성했으면 아래 명령어를 실행한다,.

 

mysql -u root -p "덤프한 데이터베이스" < "덤프한 데이터베이스 경로"

덤프한 데이터베이스의 경로는 해당 디렉토리에서 pwd 명령어를 통해 확인하면 된다.

'sql > mysql' 카테고리의 다른 글

JSON_EXTRACT, [- >>]  (0) 2024.06.26
CTE  (0) 2024.06.19
dump한 데이터베이스가 실행 안될 때  (0) 2024.05.22