๋ฐ์ํ
๐ก ๋ณธ ๋ฌธ์๋ mysql ๋ฐ์ดํฐ ๋คํํ๋ 'mysqldump'์ ๋ํด ์ ๋ฆฌํด๋์ ๊ธ์ ๋๋ค.
๋ฐ๋ผ์ 'mysqldump'๋ฅผ ์ด์ฉํ์ฌ mysql ๋ฐ์ดํฐ๋ฅผ export, import๋ฅผ ํ๊ณ ์ ํ๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
mysql ์ค์น
mysql์ด ์ค์น๊ฐ ๋์ด์์ง ์๋ค๋ฉด ๋ค์์ ๋งํฌ๋ฅผ ํตํด ์ค์น๋ฅผ ์งํํฉ๋๋ค.
- mysql official page: https://dev.mysql.com/downloads/mysql/5.7.html#downloads
์ ์ค์น ๋์๋์ง ํ์ธํฉ๋๋ค.
mysql --version
MySQL ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ(export) & ๊ฐ์ ธ์ค๊ธฐ(import)
MySQL ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ
$ mysqldump -u <user_name> -p <database_name> <table_name> > <file_name>.sql
Enter password:
- ์ฐธ๊ณ ๋ก table_name์ ์์ฑํ์ง ์์ผ๋ฉด, database ์ ์ฒด๋ฅผ dump ๋จ๊ฒ ๋ฉ๋๋ค.
MySQL ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
$ mysqldump -u <user_name> -p <database_name> <table_name> < <file_name>.sql
Enter password:
- mysqldump๋ฅผ ์ฌ์ฉํจ์ ์์ด ์ต์ ๋ค์ ํ๋จ์ ์ ๋ฆฌํด๋์์ผ๋ ์ฐธ๊ณ ๋ถํ๋๋ฆฝ๋๋ค.
- ์ฃผ์!!: ๋ง์ฝ, --quick ์ด๋ --opt ์์ด ๋คํํ๋ฉด ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ง์ด ์๋ชจ๋์ด ํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
์ต์
- (ํ์) -u, --user=name : ํด๋น DB์ ์ฌ์ฉ์ ๋ช ์ ์ ๋ ฅํฉ๋๋ค.
- (ํ์) -p : ํด๋น DB์ ๋น๋ฐ๋ฒํธ(ํจ์ค์๋)๋ฅผ ์ ๋ ฅํฉ๋๋ค(๋น๋ฐ๋ฒํธ๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ ์ดํ ์ ๋ ฅํฉ๋๋ค.).
- -h, --host=name : ์ฐ๊ฒฐํ DB์ ํธ์คํธ(ip or DNS)๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- -P, --port=# : ์ฐ๊ฒฐํ ํฌํธ๋ฅผ ์ง์ ํฉ๋๋ค.
- -f, --force : ๋คํ ์ค ์๋ฌ๊ฐ ์์ด๋ ๊ณ์ ์งํํฉ๋๋ค.
- -d, --no-date : ํ ์ด๋ธ์ ์คํค๋ง๋ง ๋คํํ๋ฉฐ, ๋์ค์ ์๋ณต์ ํ ๋ ๊ธฐ์กด DB์ TABLE, DATA๋ฅผ ์ญ์ ํ๊ณ ๋ฐฑ์ ํ ๋ด์ฉ์ผ๋ก Update๋ฅผ ํฉ๋๋ค.
- -t, --no-create-info : create table์ ์ถ๋ ฅํ์ง ์๊ณ ๋ฐ์ดํฐ๋ง ๋คํํฉ๋๋ค.
- --opt : ํ์์ ์ค๋ช
ํ ์ต์
์ ๋์์ ์ฌ์ฉํ ๊ฒ๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ค๋ฉฐ, -d or -t๋ ๊ฐ์ด ์ฌ์ฉํ ์ ์์ต๋๋ค.
- -q, --quick : C API์ mysql_use_result() ํจ์๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์๋๊ฐ ๋น ๋ฆ ๋๋ค.
- --add-drop-table : ๋คํ ๊ฒฐ๊ณผ์์ create table ์์ drop table ์ ์ ์ถ๊ฐํฉ๋๋ค.
- --add-locks : ๋คํํ๊ธฐ ์ ์ LOCK table์ ์ด์ฉํ์ฌ ํ ์ด๋ธ์ ์ ๊ทธ๊ณ ๋คํํ UNLOCK table์ ์คํํฉ๋๋ค.
- --extended-insert : insert ๋ฌธ ํ๋์์ ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ์ฝ์ ํ๋ insert ๋ฌธ์ ์์ฑํฉ๋๋ค.
- --ignore-table=database.table : ํน์ ํ ์ด๋ธ์ ์ ์ธํ๊ณ ๋ฐฑ์ ํฉ๋๋ค.
ํ์ฉ
Dump ํ์ผ ์์ถ ์ ์ฅ (๋ด๋ณด๋ด๊ธฐ / ๊ฐ์ ธ์ค๊ธฐ)
# ํ
์ด๋ธ ์๋ฃ๋ง ์์ถ์ผ๋ก ๋ฐฑ์
mysqldump -u user -p --opt -t -q <database_name> | gzip ใ <file_name>.sql.gz
# ์์ถ์๋ฃ๋ฅผ ๊ทธ๋๋ก ๋ณต์
gunzip ใ <file_name>.sql.gz | mysql -u user -p <database_name>
AUTO_INCREMENT ์ด๊ธฐํ
mysqldump -u root -p -h hostname --opt database -d --single-transaction | sed 's/ AUTO_INCREMENT=[0-9]*\b//' > filename.sql
์ฐธ๊ณ
- [Database] MySQL dump๋ก ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ: https://velog.io/@goatyeonje/Database-MySQL-dump%EB%A1%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0
- mysqldump ์ต์ ์คํค๋ง, ๋ฐ์ดํฐ๋ง ๋ฐฑ์ : https://bluebreeze.co.kr/462
๋ฐ์ํ
'Study: ComputerScience(CS) > CS: Database(SQL)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DB] MySQL ์ํคํ ์ฒ (feat. Real MySQL) (2) | 2022.11.18 |
---|---|
[DB] RDB ํธ๋์ญ์ (feat. ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค) (0) | 2022.11.08 |
[DB] ์ปค๋ฅ์ ํ(DBCP)์ด๋? DB Connection Pool (0) | 2022.08.22 |
[DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฉ์ด์ ๋ฆฌ (0) | 2022.04.16 |