MySQL 시작과 덤프 이전

관계형 데이터베이스의 기본기를 정리합니다. 설치부터 기초 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 이사할 때 가장 무난한 방법입니다.