Files
jaryo/mariadb-setup.md
vibsin9322 7be1f2ed07 MariaDB 완전 마이그레이션 및 NAS 배포 최적화
- MariaDB 환경별 자동 감지 (Windows/NAS/Linux)
- Unix Socket 및 TCP 연결 지원
- 완전한 UTF8MB4 스키마 적용
- 자동 초기화 스크립트 개선
- NAS 배포 스크립트 MariaDB 지원
- 환경변수 기반 설정 시스템
- 상세한 배포 가이드 문서화

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-22 13:38:25 +09:00

2.7 KiB

시놀로지 NAS MariaDB 설정 가이드

1. MariaDB 패키지 설치

  1. DSM 패키지 센터 열기
  2. MariaDB 10 검색 및 설치
  3. 설치 완료 후 실행

2. MariaDB 초기 설정

2.1 MariaDB 관리 도구 접속

  • DSM에서 MariaDB 10 앱 실행
  • 또는 웹 브라우저에서 http://NAS-IP:3307 접속

2.2 관리자 계정으로 로그인

  • 사용자: root
  • 비밀번호: 설치 시 설정한 비밀번호

3. 자료실 데이터베이스 설정

3.1 데이터베이스 생성

CREATE DATABASE IF NOT EXISTS jaryo 
CHARACTER SET utf8mb4 
COLLATE utf8mb4_unicode_ci;

3.2 전용 사용자 생성

CREATE USER 'jaryo_user'@'localhost' IDENTIFIED BY 'JaryoPass2024!@#';
GRANT ALL PRIVILEGES ON jaryo.* TO 'jaryo_user'@'localhost';
FLUSH PRIVILEGES;

3.3 테이블 생성 (스키마 적용)

# NAS SSH 접속 후
cd /volume1/web/jaryo
mysql -u jaryo_user -p jaryo < database/mariadb-schema.sql

4. 연결 설정 확인

4.1 Unix Socket 경로 확인

sudo find /run -name "*.sock" | grep mysql
# 일반적인 경로: /run/mysqld/mysqld10.sock

4.2 연결 테스트

mysql -u jaryo_user -p -S /run/mysqld/mysqld10.sock jaryo

5. NAS 자료실 서비스 배포

5.1 자동 배포

./deploy-to-nas.sh [NAS-IP] jaryo [PASSWORD]

5.2 수동 초기화 (필요시)

cd /volume1/web/jaryo
npm run init-mariadb

6. 문제 해결

6.1 연결 오류

  • MariaDB 서비스 상태 확인: sudo systemctl status mariadb
  • 소켓 파일 권한 확인: ls -la /run/mysqld/
  • 방화벽 설정 확인

6.2 권한 오류

-- 권한 재설정
GRANT ALL PRIVILEGES ON jaryo.* TO 'jaryo_user'@'localhost';
FLUSH PRIVILEGES;

6.3 한글 데이터 문제

-- 문자셋 확인
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';

7. 성능 최적화

7.1 인덱스 확인

USE jaryo;
SHOW INDEX FROM files;
SHOW INDEX FROM file_attachments;

7.2 쿼리 최적화

-- 슬로우 쿼리 로그 활성화
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;

8. 백업 및 복원

8.1 데이터베이스 백업

mysqldump -u jaryo_user -p jaryo > jaryo_backup_$(date +%Y%m%d).sql

8.2 데이터베이스 복원

mysql -u jaryo_user -p jaryo < jaryo_backup_YYYYMMDD.sql

9. 보안 설정

9.1 비밀번호 변경

ALTER USER 'jaryo_user'@'localhost' IDENTIFIED BY 'NEW_SECURE_PASSWORD';

9.2 불필요한 권한 제거

-- 테스트 데이터베이스 제거
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.user WHERE User='';
FLUSH PRIVILEGES;