MySQL은 가장 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS) 중 하나입니다. 주로 웹 애플리케이션에서 데이터베이스 백엔드로 사용됩니다. Linux 시스템에서 MySQL을 설치하고 관리하는 방법에 대해 설명하겠습니다.
MySQL 설치
1. MySQL APT Repository 추가 (Ubuntu)
MySQL APT 리포지토리를 추가하면 최신 버전의 MySQL을 설치할 수 있습니다.
- MySQL APT 리포지토리 패키지를 다운로드합니다.
wget https://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.deb
- 다운로드한 패키지를 설치합니다.
sudo dpkg -i mysql-apt-config_0.8.17-1_all.deb
설치 과정 중에 MySQL 서버 버전을 선택하라는 메시지가 표시됩니다. 기본 옵션을 선택하고 계속 진행합니다.
- 패키지 목록을 업데이트합니다.
sudo apt update
2. MySQL 서버 설치
MySQL 서버를 설치합니다.
sudo apt install mysql-server
설치 과정 중에 MySQL 루트 사용자 비밀번호를 설정하라는 메시지가 표시됩니다. 비밀번호를 설정하고 계속 진행합니다.
3. MySQL 서버 시작 및 상태 확인
MySQL 서버를 시작하고 상태를 확인합니다.
# MySQL 서버 시작
sudo systemctl start mysql
# MySQL 서버 상태 확인
sudo systemctl status mysql
4. MySQL 보안 설정
MySQL 보안 스크립트를 실행하여 보안 설정을 강화합니다.
sudo mysql_secure_installation
스크립트는 다음과 같은 보안 설정을 제공합니다:
- 루트 비밀번호 강도 설정
- 익명 사용자 제거
- 루트 계정의 원격 접속 비활성화
- 테스트 데이터베이스 제거
- 권한 테이블 다시 불러오기
MySQL 기본 명령어
MySQL 클라이언트 접속
MySQL 클라이언트에 접속합니다.
mysql -u root -p
루트 비밀번호를 입력하여 MySQL 클라이언트에 접속합니다.
데이터베이스 관리
데이터베이스 생성
CREATE DATABASE mydatabase;
데이터베이스 목록 확인
SHOW DATABASES;
데이터베이스 선택
USE mydatabase;
사용자 관리
사용자 생성
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
권한 부여
특정 데이터베이스에 대한 모든 권한을 사용자에게 부여합니다.
GRANT ALL PRIVILEGES ON mydatabase.* TO 'username'@'localhost';
변경 사항을 적용합니다.
FLUSH PRIVILEGES;
사용자 목록 확인
SELECT user, host FROM mysql.user;
테이블 관리
테이블 생성
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL
);
테이블 목록 확인
SHOW TABLES;
테이블 구조 확인
DESCRIBE users;
MySQL 백업 및 복구
데이터베이스 백업
mysqldump
명령어를 사용하여 데이터베이스를 백업합니다.
mysqldump -u root -p mydatabase > mydatabase_backup.sql
데이터베이스 복구
백업 파일을 사용하여 데이터베이스를 복구합니다.
mysql -u root -p mydatabase < mydatabase_backup.sql
MySQL 서비스 관리
MySQL 서비스 시작, 중지 및 재시작
# MySQL 서버 시작
sudo systemctl start mysql
# MySQL 서버 중지
sudo systemctl stop mysql
# MySQL 서버 재시작
sudo systemctl restart mysql
MySQL 서버 부팅 시 자동 시작 설정
sudo systemctl enable mysql
결론
이 가이드는 Linux 시스템에서 MySQL을 설치하고 기본적으로 관리하는 방법에 대한 내용을 다룹니다. MySQL은 강력하고 유연한 데이터베이스 시스템으로, 다양한 웹 애플리케이션에서 널리 사용됩니다. 위의 명령어와 절차를 통해 MySQL을 설치하고 관리할 수 있으며, 필요에 따라 추가적인 튜닝과 설정을 통해 성능을 최적화할 수 있습니다.