내가 기록한 글이 AI 학습에 이용된다는 사실을 알고나서 내 데이터를 다른 곳에 쓰기가 꺼려진다. 개인 서버를 운영하려고 AWS, 구글 클라우드로 서버 쓰려니 비용이 너무 부담된다. 집에 놀고 있는 노트북 + 외장하드로 서버를 구성하고, 가계부, 일기장, 할일/일정관리 db로 써보려고 한다. 메인으로 쓰던 db는 마이크로 소프트 SQL Server지만, 무료 사용에 제한이 있고 맥북 호환이 안될 것 같아서 마리아 db를 쓰기로 했다.
1. 시스템 구성도

간단히 시스템 구성도를 그려보았다. 목표는 외부 PC, 스마트폰에서 서버에 있는 데이터에 접근하는 것이다
2. 맥에 마리아 db 설치하기
brew update
brew upgrade
brew install mariadb
3. 데이터 저장 위치 변경
1) 기존 데이터 저장 위치 확인하기
mysqld --verbose --help | grep datadir
2) 마리아DB 설정 파일에 새 저장 폴더 경로 추가하기
(1) 새로운 폴더 생성 및 권한 부여하기
# 새 폴더 생성
mkdir /새로운/폴더/경로
# 권한 부여
sudo chmod -R 755 /새로운/폴더/경로
(2) 마리아 db 설정 파일에 새 저장 경로 추가
# my.cnf
[mysqld]
...
datadir=새로운/폴더/경로
...
3) 기존 데이터 이전하기
# 서버 중지
homebrew service stop mariadb
# 데이터 이전
sudo cp -R 기존/폴더/경로 /새로운/폴더/경로
4) 저장 경로 변경 확인하기
# 서버 시작
sudo mysql.server start
# 데이터 저장 경로 확인
mysqld --verbose --help | grep datadir
기존 저장 위치가 아닌 새로운 폴더 경로가 나오면 성공이다.
5) 서버 재시작
# 서버 중지
sudo mysql.server stop
# 서버 시작
brew services start mariadb
4. 외부 접속 설정하기
1) 마리아 DB 원격 접속 허용하기
마리아 db 설정 파일 폴더에 존재하는 모든 bind-address=127.0.0.1 주석 처리
# my.cnf
[mysqld]
...
# 원격 접속 허용하기
bind-address=0.0.0.0
...
2) 공유기 포트포워딩
(1) 맥 내부 아이피 확인하기

(2) 공유기 설정 변경하기

4) 원격 접속 테스트 하기
(1) 서버 컴퓨터 : 새로운 유저 생성 및 권한 부여
# 새로운 사용자 생성
CREATE USER '사용자아이디'@'%' IDENTIFIED BY '사용자비밀번호';
# 모든 IP 주소에서 특정 데이터베이스 접속허용
GRANT ALL PRIVILEGES ON '데이터베이스이름'.* TO '사용자아이디'@'%';
# 모든 IP 주소에서 모든 데이터베이스 접속허용
GRANT ALL PRIVILEGES ON *.* TO '사용자아이디'@'%';
# 변경 사항 적용
FLUSH PRIVILEGES;
(2) 외부 PC : 마리아DB 설치 후 서버 접속하기
# 서버 외부 IP 주소: 서버 컴퓨터에서 https://ip.pe.kr 접속
mysql -u [사용자이름] -h [서버외부IP주소] -p
참고 ) 마리아 DB 설정 파일 위치 조회
mysql --help | grep "Default options" -A 1
만약 아무것도 조회되지 않는다면 마리아db가 제대로 설치되지 않은 것이다. 맥을 업데이트 하고, 맥 버전에 맞는 최신 Command Line Tool for Xcode(다운경로)를 설치한다.
로그인 - Apple
idmsa.apple.com
참고) 마리아 DB 설정 파일 저장 방식
my.cnf 파일 하나에 모두 작성 | my.cnf.d 폴더 아래에 여러개의 파일로 분리해서 작성 |
- 하나의 파일 내에서 설정 종류를 주석으로 구분 | - 폴더 내의 파일 이름으로 설정 종류 구분 ex) server.cnf, remote.cnf, data.cnf |
참고) 서버 실행/중지 명령어 비교
brew services start/stop mariadb | mysql.server start/stop |
- 일반적인 경우 - 관리하기 쉬움 ex) 컴퓨터 재시작하면 자동으로 실행 |
- 문제 해결이나 특별한 설정이 필요한 경우 ex) 데이터 저장 경로 변경 |
참고) 루트 비번 잊었을 때 재설정하기
1) 안전모드로 서버 재시작
# 서버 중지
brew services stop mariadb
# 안전모드로 서버 시작
mysql.server start --skip-grant-tables
2) 루트 비번 없이 접속
sudo mysql -u root
3) 비밀번호 재설정
USE mysql;
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '새로운비밀번호';
FLUSH PRIVILEGES;
EXIT;
4) 서버 정상모드 재실행
mysql.server stop
brew services start mariadb
'사이드 프로젝트 > 가계부 앱 만들기' 카테고리의 다른 글
[가계부 앱 개발 6] 구글 플레이스토어 배포하기 (0) | 2025.03.03 |
---|---|
[가계부 앱 개발 5] 구글 로그인 구현하기 (0) | 2025.02.16 |
[가게부 앱 개발 4] 안드로이드 앱 개발하기 (0) | 2025.01.28 |
[가계부 앱 개발 3] 웹페이지 배포하기 (0) | 2025.01.21 |
[가계부 앱 개발 2] API 배포하기 (2) | 2025.01.02 |