IT 기술 문서

2025.02.01 17:23

CentOS 7 유용한 명령어 시리즈 - ⑭ MySQL / MariaDB 관리

  • it2033 4일 전 2025.02.01 17:23
  • 6
    0

alt text


CentOS 7에서 데이터베이스 관리는 웹 서비스 및 애플리케이션 운영에서 중요한 부분입니다. MySQL과 MariaDB는 가장 많이 사용되는 관계형 데이터베이스 관리 시스템(RDBMS)이며, CentOS 7에서는 기본적으로 MariaDB가 제공됩니다. 이 글에서는 MySQL/MariaDB를 관리하는 데 필요한 명령어를 정리하겠습니다.


1. MySQL / MariaDB 설치 및 서비스 관리

1.1. MySQL / MariaDB 설치

yum install mariadb-server mariadb -y
  • MariaDB를 설치합니다. (MySQL을 사용하려면 mysql-server를 설치해야 합니다.)

1.2. 데이터베이스 서비스 시작

systemctl start mariadb
  • MariaDB 서비스를 시작합니다.

1.3. 부팅 시 자동 실행 설정

systemctl enable mariadb
  • MariaDB가 서버 부팅 시 자동으로 시작되도록 설정합니다.

1.4. MariaDB 서비스 상태 확인

systemctl status mariadb
  • MariaDB 서비스가 정상적으로 실행되고 있는지 확인합니다.

1.5. MariaDB 서비스 중지

systemctl stop mariadb
  • MariaDB 서비스를 중지합니다.

1.6. MariaDB 서비스 재시작

systemctl restart mariadb
  • MariaDB 서비스를 다시 시작합니다.


2. MySQL / MariaDB 기본 설정

2.1. MySQL/MariaDB 보안 설정

mysql_secure_installation
  • 초기 보안 설정을 수행합니다.

  • 루트 비밀번호 설정, 익명 사용자 제거, 원격 루트 로그인 차단, 테스트 데이터베이스 삭제 등의 작업을 수행할 수 있습니다.


3. MySQL / MariaDB 접속 및 계정 관리

3.1. MySQL/MariaDB에 접속

mysql -u root -p
  • 루트 사용자로 MySQL/MariaDB에 접속합니다.

  • 비밀번호를 입력해야 합니다.

3.2. 새로운 사용자 추가

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
  • newuser라는 새 계정을 생성하고 비밀번호를 설정합니다.

3.3. 특정 데이터베이스에 대한 권한 부여

GRANT ALL PRIVILEGES ON mydatabase.* TO 'newuser'@'localhost';
FLUSH PRIVILEGES;
  • newuser에게 mydatabase에 대한 모든 권한을 부여하고 변경 사항을 적용합니다.

3.4. 사용자 권한 확인

SHOW GRANTS FOR 'newuser'@'localhost';
  • newuser의 현재 권한을 확인합니다.

3.5. 사용자 삭제

DROP USER 'newuser'@'localhost';
FLUSH PRIVILEGES;
  • newuser 계정을 삭제합니다.


4. 데이터베이스 및 테이블 관리

4.1. 데이터베이스 목록 확인

SHOW DATABASES;
  • 현재 존재하는 데이터베이스 목록을 확인합니다.

4.2. 새 데이터베이스 생성

CREATE DATABASE mydatabase;
  • mydatabase라는 새로운 데이터베이스를 생성합니다.

4.3. 특정 데이터베이스 사용

USE mydatabase;
  • mydatabase를 사용하도록 설정합니다.

4.4. 현재 데이터베이스의 테이블 목록 확인

SHOW TABLES;
  • 현재 데이터베이스의 테이블 목록을 확인합니다.

4.5. 새로운 테이블 생성

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    email VARCHAR(100) UNIQUE
);
  • users 테이블을 생성합니다.

4.6. 테이블 구조 확인

DESC users;
  • users 테이블의 구조를 확인합니다.

4.7. 테이블 삭제

DROP TABLE users;
  • users 테이블을 삭제합니다.

4.8. 데이터베이스 삭제

DROP DATABASE mydatabase;
  • mydatabase 데이터베이스를 삭제합니다.


5. 데이터 백업 및 복원

5.1. 특정 데이터베이스 백업 (Dump)

mysqldump -u root -p mydatabase > mydatabase_backup.sql
  • mydatabase 데이터베이스를 mydatabase_backup.sql 파일로 백업합니다.

5.2. 모든 데이터베이스 백업

mysqldump -u root -p --all-databases > all_databases_backup.sql
  • MySQL/MariaDB의 모든 데이터베이스를 백업합니다.

5.3. 특정 데이터베이스 복원

mysql -u root -p mydatabase < mydatabase_backup.sql
  • 백업한 mydatabase_backup.sql 파일을 mydatabase 데이터베이스에 복원합니다.

5.4. 모든 데이터베이스 복원

mysql -u root -p < all_databases_backup.sql
  • 전체 데이터베이스 백업 파일을 복원합니다.


6. 성능 및 문제 해결

6.1. 현재 연결된 사용자 확인

SHOW PROCESSLIST;
  • 현재 MySQL/MariaDB에 접속 중인 사용자를 확인합니다.

6.2. 데이터베이스 크기 확인

SELECT table_schema AS "Database",
       ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)"
FROM information_schema.tables
GROUP BY table_schema;
  • 각 데이터베이스의 크기를 MB 단위로 출력합니다.

6.3. 특정 테이블 최적화

OPTIMIZE TABLE users;
  • users 테이블을 최적화하여 디스크 공간을 정리합니다.

6.4. MySQL/MariaDB 로그 확인

cat /var/log/mariadb/mariadb.log
  • MySQL/MariaDB에서 발생한 오류 및 로그를 확인합니다.


정리

명령어

설명

yum install mariadb-server -y

MariaDB 설치

systemctl start mariadb

MariaDB 서비스 시작

systemctl enable mariadb

부팅 시 MariaDB 자동 실행 설정

mysql_secure_installation

MySQL/MariaDB 보안 설정

mysql -u root -p

MySQL/MariaDB 접속

CREATE DATABASE mydatabase;

새 데이터베이스 생성

SHOW DATABASES;

데이터베이스 목록 확인

CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';

사용자 계정 생성

GRANT ALL PRIVILEGES ON mydatabase.* TO 'user'@'localhost';

사용자에게 권한 부여

SHOW PROCESSLIST;

현재 연결된 사용자 확인

mysqldump -u root -p mydatabase > backup.sql

특정 데이터베이스 백업

mysql -u root -p mydatabase < backup.sql

특정 데이터베이스 복원

cat /var/log/mariadb/mariadb.log

MySQL/MariaDB 로그 확인

이번에는 MySQL / MariaDB 관리 명령어를 정리했습니다. 다음 시리즈에서는 Apache / Nginx 웹서버 관리 명령어를 다루겠습니다.

  • 공유링크 복사