데이터베이스 연결 구성 파일
웹 애플리케이션에서 데이터베이스 연결을 관리하기 위해 db_config.php 파일을 사용하는 방식은 일반적이고 효과적입니다. 이 접근법의 구조와 예시를 설명합니다:
- 연결 구성 파일 (db_config.php):
<?php
$server = 'localhost'; // 데이터베이스 서버 주소
$databaseName = 'my_app_db'; // 데이터베이스 이름
$dbUser = 'db_admin'; // 데이터베이스 사용자명
$dbPassword = 'securePass123!'; // 데이터베이스 비밀번호
try {
$pdo = new PDO("mysql:host=$server;dbname=$databaseName;charset=utf8mb4", $dbUser, $dbPassword);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
} catch (PDOException $e) {
die("연결 오류: " . $e->getMessage());
}
?>
- 다른 PHP 파일에서 연결 사용 예시:
<?php
require_once 'includes/db_config.php';
// 연결 객체를 통해 쿼리 실행
$statement = $pdo->query("SELECT id, name FROM users");
$records = $statement->fetchAll(PDO::FETCH_ASSOC);
?>
데이터베이스 생성 절차 및 명령어:
- MySQL에 로그인:
mysql -u root -p
- 데이터베이스 생성:
CREATE DATABASE my_app_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 사용자 생성 및 권한 부여:
CREATE USER 'db_admin'@'localhost' IDENTIFIED BY 'securePass123!';
GRANT ALL PRIVILEGES ON my_app_db.* TO 'db_admin'@'localhost';
FLUSH PRIVILEGES;
- 데이터베이스 선택:
USE my_app_db;
- 테이블 생성 예시:
CREATE TABLE users (
user_id INT AUTO_INCREMENT PRIMARY KEY,
login_name VARCHAR(50) NOT NULL UNIQUE,
email_address VARCHAR(100) NOT NULL UNIQUE,
auth_token VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
- 데이터 삽입 예시:
INSERT INTO users (login_name, email_address, auth_token)
VALUES ('jane_smith', 'jane@example.net', 'hashed_token_value');
- MySQL 종료:
EXIT;
주의사항:
db_config.php파일은 웹 접근이 불가능한 디렉토리에 배치해야 합니다- 복잡한 암호를 사용하고 주기적으로 변경해야 합니다
- 환경 변수를 통해 인증 정보를 관리하는 것이 더 안전합니다
- 정기적인 데이터베이스 백업이 필수적입니다
- 서버와 데이터베이스의 보안 패치를 항상 최신으로 유지해야 합니다
이 방법은 간단하고 유지보수가 쉬운 장점이 있지만, 복잡한 애플리케이션에서는 ORM 또는 데이터베이스 추상화 계층을 고려하는 것이 좋습니다.