# 종량제 로컬 DB 설정 (MariaDB) 로컬에서 개발을 시작할 때 MariaDB 설치·DB 생성·프로젝트 연결 방법입니다. --- ## 1. MariaDB 버전 - **권장**: **MariaDB 10.11 LTS** 또는 **11.x 최신 안정(stable)** 중 하나를 사용하면 됩니다. - **10.11 LTS**: 장기 지원 버전. 운영 서버와 버전을 맞추고 싶을 때 적합. - **11.x (최신 stable)**: 최신 기능·성능 개선이 필요할 때 적합. PHP 8 + CI4와 호환됩니다. - **정리**: “꼭 최신이어야 한다”는 필요는 없고, **10.11 이상**이면 충분합니다. Homebrew로 설치 시 `brew install mariadb` 는 보통 최신 stable을 설치합니다. --- ## 2. 설치 (macOS, Homebrew) ```bash # MariaDB 설치 brew install mariadb # 서비스 기동 (재부팅 후에도 자동 기동 원하면) brew services start mariadb ``` - **포트**: 기본 `3306`. 다른 MySQL/MariaDB가 이미 쓰고 있으면 충돌할 수 있으니, 필요 시 `brew services list` 등으로 확인합니다. --- ## 3. DB·사용자 생성 터미널에서 MariaDB에 접속한 뒤 아래 SQL을 실행합니다. ```bash mariadb -u root ``` 비밀번호를 물어보면, 설치 직후에는 비밀번호가 없을 수 있어 **Enter**만 누르면 됩니다. (이미 root 비밀번호를 설정했다면 해당 비밀번호 입력.) SQL: ```sql CREATE DATABASE IF NOT EXISTS jongryangje_dev CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER IF NOT EXISTS 'jongryangje'@'localhost' IDENTIFIED BY 'jongryangje_dev'; GRANT ALL PRIVILEGES ON jongryangje_dev.* TO 'jongryangje'@'localhost'; FLUSH PRIVILEGES; EXIT; ``` - **DB 이름**: `jongryangje_dev` - **사용자**: `jongryangje` - **비밀번호**: `jongryangje_dev` → 비밀번호를 다르게 쓰려면 아래 `.env` 설정에서 같이 바꿉니다. --- ## 4. 프로젝트 .env 설정 프로젝트 루트에 `.env` 파일이 없으면 `env` 를 복사한 뒤 DB 설정만 넣어도 됩니다. ```bash cd /Users/tae/PhpstormProjects/jongryangje cp env .env ``` `.env` 에서 다음 항목의 **주석(#)을 제거**하고 값을 수정합니다. ```ini # ENVIRONMENT CI_ENVIRONMENT = development # APP (로컬 주소에 맞게) app.baseURL = 'http://jongryangje.local/' # 또는 PHP 내장 서버 사용 시: # app.baseURL = 'http://localhost:8080/' # DATABASE database.default.hostname = localhost database.default.database = jongryangje_dev database.default.username = jongryangje database.default.password = jongryangje_dev database.default.DBDriver = MySQLi database.default.port = 3306 ``` - **비밀번호**를 3단계에서 다르게 정했다면 `database.default.password` 에 같은 값을 넣습니다. --- ## 5. 연결 확인 CI4에서 DB를 쓰는 코드(예: 로그인·모델)를 넣은 뒤 브라우저로 접속해 보거나, 아래처럼 스파크로 확인할 수 있습니다. ```bash cd /Users/tae/PhpstormProjects/jongryangje php spark db:table ``` (마이그레이션을 아직 안 했다면 테이블 목록이 비어 있을 수 있습니다. 에러 없이 실행되면 연결은 된 것입니다.) --- ## 6. 프로젝트 내 초기화 SQL (선택) DB·사용자 생성을 한 번에 하려면 프로젝트에 포함된 SQL을 사용할 수 있습니다. ```bash # MariaDB가 실행 중일 때 (프로젝트 루트에서) mariadb -u root < writable/database/init_jongryangje_dev.sql ``` - **파일 위치**: `writable/database/init_jongryangje_dev.sql` - root 비밀번호가 있으면: `mariadb -u root -p < writable/database/init_jongryangje_dev.sql` --- ## 7. MariaDB가 기동되지 않을 때 - `brew services start mariadb` 후에도 `Can't connect to local server through socket` 이 나오면: - 터미널을 새로 연 뒤 다시 `brew services start mariadb` 실행 - 또는 **재부팅** 후 `brew services start mariadb` - macOS에서 launchctl 오류(예: Bootstrap failed 5)가 나오면, 재부팅 후 재시도하거나 [Homebrew MariaDB 문서](https://formulae.brew.sh/formula/mariadb) 참고 - 수동 기동: `mariadbd --datadir=/opt/homebrew/var/mysql &` (경로는 `brew --prefix mariadb`/var/mysql 로 확인) --- ## 8. 요약 체크리스트 - [ ] `brew install mariadb` 후 `brew services start mariadb` - [ ] `mariadb -u root` 로 접속해 `jongryangje_dev` DB·`jongryangje` 사용자 생성 (또는 `init_jongryangje_dev.sql` 실행) - [ ] 프로젝트 `.env` 에 `database.default.*` 설정 - [ ] (선택) `php spark db:table` 또는 웹 접속으로 연결 확인 이후 Phase 1(로그인)·Phase 2(admin) 개발 시 이 DB를 사용하면 됩니다.