[MySQL 5.7 매뉴얼 읽기] 테스트용 샘플 데이터베이스(employees) 적재하기
MySQL 공식 홈페이지에서는 MySQL DB를 학습할 수 있도록 샘플 데이터셋을 제공합니다.
이를 MySQL DB에 적재하는 것에 대해서도 매우 친절하게 안내하고 있는데, 이 내용을 살펴봅니다.
https://dev.mysql.com/doc/index-other.html
Example Databases
- employee data
- world
- world_x
- sakila
- menagerie
MySQL 공식홈페이지에서는 여러가지 예제 데이터베이스를 제공하는데,
비교적 데이터양이 많은 employees를 기준으로 적재해봅니다.
다운로드
employees 샘플 데이터베이스는 깃허브를 이용해 배포되고 있습니다.
https://github.com/datacharmer/test_db
위와 같이 zip 파일로 내려 받습니다.
내려받은 zip 파일은 MySQL DB가 설치된 서버에 업로드 합니다.
git 사용이 가능한 환경이면, git clone으로 바로 내려받아도 무방합니다.
설치
https://dev.mysql.com/doc/employee/en/employees-installation.html
zip 파일을 unzip으로 압축을 풀어줍니다.
shell> unzip test_db-master.zip
shell> cd test_db-master
해당 경로로 들어가서, employees.sql을 mysql 유틸리티를 이용해 데이터를 적재해줍니다.
[root@myhost1 test_db-master]# mysql -t < employees.sql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
하지만 위와 같은 에러가 발생하실 수 있는데요.
root@localhost에 암호를 지정해둔 경우, 혹은 다른 user를 이용해 적재하고 싶을 경우 아래와 같이 합니다.
# -u, -p 옵션을 추가
[root@myhost1 test_db-master]# mysql -t -uroot -p < employees.sql
정상적으로 처리 된다면 아래와 같이 처리 화면이 출력됩니다.
+-----------------------------+
| INFO |
+-----------------------------+
| CREATING DATABASE STRUCTURE |
+-----------------------------+
+------------------------+
| INFO |
+------------------------+
| storage engine: InnoDB |
+------------------------+
+---------------------+
| INFO |
+---------------------+
| LOADING departments |
+---------------------+
+-------------------+
| INFO |
+-------------------+
| LOADING employees |
+-------------------+
+------------------+
| INFO |
+------------------+
| LOADING dept_emp |
+------------------+
+----------------------+
| INFO |
+----------------------+
| LOADING dept_manager |
+----------------------+
+----------------+
| INFO |
+----------------+
| LOADING titles |
+----------------+
+------------------+
| INFO |
+------------------+
| LOADING salaries |
+------------------+
+---------------------+
| data_load_time_diff |
+---------------------+
| 00:01:15 |
+---------------------+
확인
이 employees 샘플 데이터베이스의 적재는 위 과정에서도 이미 상태가 확인이 되기는 하지만,
md5 / sha 방식으로 validate 체크를 할 수 있도록 제공하고 있습니다.
https://dev.mysql.com/doc/employee/en/employees-validation.html
sha, md5 방식 체크
# sha 방식
shell> time mysql -t -uroot -p < test_employees_sha.sql
# md5 방식
shell> time mysql -t -uroot -p < test_employees_md5.sql
그러면 각각의 방식으로 확인한 결과값이 출력됩니다.
sha 방식 결과는 아래와 같습니다.
+----------------------+
| INFO |
+----------------------+
| TESTING INSTALLATION |
+----------------------+
+--------------+------------------+------------------------------------------+
| table_name | expected_records | expected_crc |
+--------------+------------------+------------------------------------------+
| departments | 9 | 4b315afa0e35ca6649df897b958345bcb3d2b764 |
| dept_emp | 331603 | d95ab9fe07df0865f592574b3b33b9c741d9fd1b |
| dept_manager | 24 | 9687a7d6f93ca8847388a42a6d8d93982a841c6c |
| employees | 300024 | 4d4aa689914d8fd41db7e45c2168e7dcb9697359 |
| salaries | 2844047 | b5a1785c27d75e33a4173aaa22ccf41ebd7d4a9f |
| titles | 443308 | d12d5f746b88f07e69b9e36675b6067abb01b60e |
+--------------+------------------+------------------------------------------+
+--------------+------------------+------------------------------------------+
| table_name | found_records | found_crc |
+--------------+------------------+------------------------------------------+
| departments | 9 | 4b315afa0e35ca6649df897b958345bcb3d2b764 |
| dept_emp | 331603 | d95ab9fe07df0865f592574b3b33b9c741d9fd1b |
| dept_manager | 24 | 9687a7d6f93ca8847388a42a6d8d93982a841c6c |
| employees | 300024 | 4d4aa689914d8fd41db7e45c2168e7dcb9697359 |
| salaries | 2844047 | b5a1785c27d75e33a4173aaa22ccf41ebd7d4a9f |
| titles | 443308 | d12d5f746b88f07e69b9e36675b6067abb01b60e |
+--------------+------------------+------------------------------------------+
+--------------+---------------+-----------+
| table_name | records_match | crc_match |
+--------------+---------------+-----------+
| departments | OK | ok |
| dept_emp | OK | ok |
| dept_manager | OK | ok |
| employees | OK | ok |
| salaries | OK | ok |
| titles | OK | ok |
+--------------+---------------+-----------+
+------------------+
| computation_time |
+------------------+
| 00:01:01 |
+------------------+
+---------+--------+
| summary | result |
+---------+--------+
| CRC | OK |
| count | OK |
+---------+--------+
real 1m2.108s
user 0m0.005s
sys 0m0.006s
md5 방식 결과는 아래와 같습니다.
+----------------------+
| INFO |
+----------------------+
| TESTING INSTALLATION |
+----------------------+
+--------------+------------------+----------------------------------+
| table_name | expected_records | expected_crc |
+--------------+------------------+----------------------------------+
| departments | 9 | d1af5e170d2d1591d776d5638d71fc5f |
| dept_emp | 331603 | ccf6fe516f990bdaa49713fc478701b7 |
| dept_manager | 24 | 8720e2f0853ac9096b689c14664f847e |
| employees | 300024 | 4ec56ab5ba37218d187cf6ab09ce1aa1 |
| salaries | 2844047 | fd220654e95aea1b169624ffe3fca934 |
| titles | 443308 | bfa016c472df68e70a03facafa1bc0a8 |
+--------------+------------------+----------------------------------+
+--------------+------------------+----------------------------------+
| table_name | found_records | found_crc |
+--------------+------------------+----------------------------------+
| departments | 9 | d1af5e170d2d1591d776d5638d71fc5f |
| dept_emp | 331603 | ccf6fe516f990bdaa49713fc478701b7 |
| dept_manager | 24 | 8720e2f0853ac9096b689c14664f847e |
| employees | 300024 | 4ec56ab5ba37218d187cf6ab09ce1aa1 |
| salaries | 2844047 | fd220654e95aea1b169624ffe3fca934 |
| titles | 443308 | bfa016c472df68e70a03facafa1bc0a8 |
+--------------+------------------+----------------------------------+
+--------------+---------------+-----------+
| table_name | records_match | crc_match |
+--------------+---------------+-----------+
| departments | OK | ok |
| dept_emp | OK | ok |
| dept_manager | OK | ok |
| employees | OK | ok |
| salaries | OK | ok |
| titles | OK | ok |
+--------------+---------------+-----------+
+------------------+
| computation_time |
+------------------+
| 00:00:48 |
+------------------+
+---------+--------+
| summary | result |
+---------+--------+
| CRC | OK |
| count | OK |
+---------+--------+
real 0m53.053s
user 0m0.004s
sys 0m0.004s
DB에서 직접 확인
DB에 직접 접속해서 생성된 데이터베이스와 테이블 목록을 확인해 봅니다.
# 데이터베이스 목록 확인
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| employees |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
# employees 데이터베이스 선택
mysql> use employees;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
# 테이블목록 확인
mysql> show tables;
+----------------------+
| Tables_in_employees |
+----------------------+
| current_dept_emp |
| departments |
| dept_emp |
| dept_emp_latest_date |
| dept_manager |
| employees |
| salaries |
| titles |
+----------------------+
8 rows in set (0.00 sec)
이제 샘플 데이터베이스를 활용하여 신나게(?) 테스트를 즐기면 됩니다.
끝!
날짜 | 내용 |
---|---|
2020.10.01 | 최초 글 작성 |
2021.07.23 | 글 해당 공간으로 복제 |
2021.08.02 | git clone에 대한 첨언 추가 |