데이터베이스 개요
데이터베이스는 체계적으로 저장된 데이터 합체이자 관리 체계입니다. 엑셀 등의 스프레드시트로는 대용량 데이터 관리, 동시 접근 처리, 잡한 집계와 조인 연산 등의 한계가 있어 전문 DBMS가 필요하게 되었습니다.
DBMS 유형 비교
관계형(RDBMS)
- 스키마 기반의 엄격한 구조, 테이블 간 관계 정의
- 영구 저장을 위한 디스크 기반 저장소 활용
- 대표 제품: PostgreSQL, MySQL/MariaDB, SQL Server, Oracle, SQLite
비관계형(NoSQL)
- 유연한 스키마, Key-Value 또는 문서 중심 구조
- 높은 성능을 위한 메모리 우선 저장, 지속성 보장 여부는 제품별 상이
- 대표 제품: Redis(지속성 지원), MongoDB(문서형), Memcached(캐싱 전용)
MySQL 구동 원리
MySQL은 클이언트-서버 아키텍처로 동작합니다. mysqld 데몬이 기본 3306번 포트에서 수신 대기하며, 클라이언트는 해당 포트로 연결 요청 후 SQL 명령을 전송하여 데이터를 조작합니다.
설치 및 실행 가이드
Windows 환경
1. 바이리 배포판 준비
MySQL Community Server 5.7.x를 공식 사이트에서 려받아 원하는 경로에 해제합니다. 안정성을 위해 검증된 버전 사용을 권장합니다.
2. 환경 변수 등록
해제한 폴더 내 bin 디렉터리 경로를 시스템 PATH에 추가합니다.
3. 데이터 디렉터리 초기화
mysqld --initialize-insecure --console4. 서비스 등록 (선택)
수동으로 mysqld를 실행하는 대신 Windows 서비스로 등록하면 편리합니다.
"C:\원하는\경로\mysql\bin\mysqld" --install5. 클이언트 접속
mysql -u root -p초기 비밀번호가 비어있는 경우 Enter 키로 통과합니다.
비밀번호 변경 시나리오
기존 비밀번호를 알고 있을 때
mysqladmin -u root -p"현재비밀" password "새로운비밀"기존 비밀번호를 잊어버렸을 때
- 서비스 중지
- 권한 테이블 우회 모드로 실행:
mysqld --skip-grant-tables - 비밀번호 없이 접속 후 직접 신
UPDATE mysql.user SET authentication_string=PASSWORD('새비밀') WHERE user='root';
FLUSH PRIVILEGES;이후 프로세스 종료 후 정상 재시작합니다.
주요 접속 션
| 옵션 | 의미 | 예시 |
|---|---|---|
-u | 사용자명 | mysql -u admin |
-p | 비밀번호 입력 요청 | mysql -u admin -p |
-h | 속 대상 호스트 | -h 192.168.0.50 |
-P | 포트 번호 (대문자) | -P 3307 |
Linux 환경 (CentOS 7 기준)
# 1. 아카이브 해제 및 배치
tar -xzvf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.38-linux-glibc2.12-x86_64 /usr/local/mysql
# 2. 전용 계정 생성
groupadd dba
useradd -r -g dba mysql
id mysql
# 3. 데이터 저장소 준비 및 권한 부여
cd /usr/local/mysql
mkdir data
chown -R mysql:dba /usr/local/mysql
# 4. 초기화 (마지막 줄의 임시 비밀번호 기록)
bin/mysqld --initialize --user=mysql
# 5. 서비스 스크립트 배치
cp support-files/mysql.server /etc/init.d/mysql
# 6. 구동
service mysql start
# 7. 초기 비밀번호 변경
bin/mysqladmin -h localhost -u root password '변경할비밀' -p'임시비밀'
# 8. 원격 접속 허용 (필요시)
bin/mysql -uroot -p
USE mysql;
UPDATE user SET host='%' WHERE user='root';
FLUSH PRIVILEGES;데이터베이스 기본 조작
생성
CREATE DATABASE 플DB CHARACTER SET utf8mb4;목록 확인
SHOW DATABASES;사용 전환
USE 샘플DB;정의 확인
SHOW CREATE DATABASE 샘플DB;제거
DROP DATABASE 샘플DB;운영 환경에서 삭제 전 반드시 논리적 백업을 수행해야 하며, 데이터베이스명은 숫자 단독 사용, 예약어, 특수문자를 하고 128바이트 내로 제한합니다.