관계형 데이터베이스의 기본기를 정리합니다. 설치부터 기초 SQL, 사용자 관리, 그리고 실무에서 자주 하는 덤프 백업·이전까지 다뤄볼게요.
설치
MySQL
apt-get update
apt-get install -y mysql-server
service mysql status # 실행 확인
mysql -u root -p # 접속
기본 패키지가 없다면 공식 apt 설정 패키지를 받아 저장소를 등록한 뒤 설치합니다.
apt-get install -y wget gnupg
wget https://dev.mysql.com/get/mysql-apt-config_0.8.30-1_all.deb
dpkg -i mysql-apt-config_0.8.30-1_all.deb
apt-get update && apt-get install -y mysql-server
MariaDB
MariaDB는 Oracle의 MySQL 인수 후 오픈소스 정신을 이어가고자 만들어진 MySQL의 포크입니다. 호환성이 높아 기존 MySQL 애플리케이션을 거의 수정 없이 쓸 수 있어요.
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash
apt-get update
apt-get install -y mariadb-server
기초 SQL
CREATE DATABASE mydb; -- 데이터베이스 생성
SHOW DATABASES; -- 목록 조회
USE mydb; -- 선택
SHOW TABLES; -- 테이블 목록
DESC users; -- 테이블 구조 확인
SELECT * FROM users; -- 조회
UPDATE users SET name='brook' WHERE id=1; -- 수정
DELETE FROM users WHERE id=1; -- 삭제
사용자 생성과 권한
CREATE USER 'brook'@'%' IDENTIFIED BY '비밀번호';
GRANT ALL PRIVILEGES ON *.* TO 'brook'@'%';
FLUSH PRIVILEGES;
'%' 는 모든 호스트에서 접속을 허용한다는 뜻입니다. 편하지만 보안상 넓으니, 실제로는 특정 IP나 대역('brook'@'10.0.0.%')으로 좁히는 걸 권장합니다. 권한도 ALL 대신 필요한 것만 주는 게 좋고요.
덤프로 백업하고 이전하기
mysqldump 는 데이터베이스를 SQL 스크립트로 뽑아 백업·이전할 때 씁니다.
# 특정 DB 덤프
mysqldump -u root -p mydb > mydb.sql
# 모든 DB 덤프
mysqldump -u root -p --all-databases > all.sql
# 특정 테이블만
mysqldump -u root -p mydb users > users.sql
복구는 반대로 밀어 넣습니다.
mysql -u root -p mydb < mydb.sql
다른 서버로 옮기는 전체 흐름은 이렇습니다.
mysqldump -u root -p mydb > mydb.sql # 1) 덤프
tar -cvzf mydb.tar.gz mydb.sql # 2) 크면 압축
scp mydb.tar.gz user@[대상서버]:/home/user # 3) 전송
# 대상 서버에서
tar -xvzf mydb.tar.gz
mysql -u root -p newdb < mydb.sql # 4) 복구
덤프는 텍스트라 버전이 조금 달라도 이전이 잘 되는 편이라, DB 이사할 때 가장 무난한 방법입니다.