IT 기술 문서
CentOS 7 유용한 명령어 시리즈 - ⑭ MySQL / MariaDB 관리
- it2033 4일 전 2025.02.01 17:23
-
- 6
- 0
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에서 발생한 오류 및 로그를 확인합니다.
정리
명령어 | 설명 |
---|---|
| MariaDB 설치 |
| MariaDB 서비스 시작 |
| 부팅 시 MariaDB 자동 실행 설정 |
| MySQL/MariaDB 보안 설정 |
| MySQL/MariaDB 접속 |
| 새 데이터베이스 생성 |
| 데이터베이스 목록 확인 |
| 사용자 계정 생성 |
| 사용자에게 권한 부여 |
| 현재 연결된 사용자 확인 |
| 특정 데이터베이스 백업 |
| 특정 데이터베이스 복원 |
| MySQL/MariaDB 로그 확인 |
이번에는 MySQL / MariaDB 관리 명령어를 정리했습니다. 다음 시리즈에서는 Apache / Nginx 웹서버 관리 명령어를 다루겠습니다.
- 이전글CentOS 7 유용한 명령어 시리즈 - ⑮ Apache / Nginx 웹서버 관리2025.02.01
- 다음글CentOS 7 유용한 명령어 시리즈 - ⑬ 네트워크 문제 해결 및 트러블슈팅2025.02.01
댓글목록
등록된 댓글이 없습니다.