데이터베이스 연결 중 오류

wp-config.php의 사용자명과 비밀번호 정보가 올바르지 않거나 192.168.1.3의 데이터베이스 서버에 접근할 수 없다는 것을 의미합니다. 이는 호스트의 데이터베이스 서버가 동작하지 않고 있다는 것을 의미할 수도 있습니다.


1. wp-config.php 파일의 설정 확인

워드프레스의 wp-config.php 파일에 입력한 데이터베이스 정보가 정확한지 확인하세요.

bash
sudo nano /var/www/html/wordpress/wp-config.php

확인해야 할 항목:

php
define('DB_NAME', 'wordpress'); // 데이터베이스 이름
define('DB_USER', 'wp_user'); // 데이터베이스 사용자명
define('DB_PASSWORD', '비밀번호'); // 데이터베이스 비밀번호

define('DB_HOST', 'localhost'); // 호스트 이름

점검:

  • DB_NAME: MySQL에서 생성한 데이터베이스 이름과 일치하는지 확인.
  • DB_USER: 데이터베이스 사용자 이름이 올바른지 확인.
  • DB_PASSWORD: MySQL 사용자 계정의 비밀번호와 동일한지 확인.
  • DB_HOST: 동일 서버에 설치된 MySQL이라면 localhost로 유지.

2. MySQL 사용자 권한 확인

MySQL에 접속해 사용자 권한이 제대로 설정되었는지 확인합니다.

bash
sudo mysql -u root -p

다음 명령어를 실행:

sql
USE mysql;
SELECT User, Host FROM mysql.user WHERE User = 'wp_user';
  • 결과에 wp_userlocalhost가 포함되어 있는지 확인합니다.
  • 권한이 제대로 설정되지 않았다면 다시 권한 부여:
    sql
    GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost' IDENTIFIED BY '비밀번호';
    FLUSH PRIVILEGES;

3. MySQL 서버 상태 확인

MySQL 서버가 실행 중인지 확인합니다.

bash
sudo systemctl status mysql
  • MySQL 서버가 멈춰 있다면:
    bash
    sudo systemctl start mysql
  • 부팅 시 MySQL이 자동으로 시작되도록 설정:
    bash
    sudo systemctl enable mysql

4. MySQL에서 직접 접속 테스트

wp-config.php에 설정된 사용자 계정으로 데이터베이스에 접속할 수 있는지 테스트합니다.

bash
mysql -u wp_user -p -h localhost
  • 제대로 접속되면 MySQL CLI가 열립니다.
  • 접속에 실패한다면 사용자 이름, 비밀번호, 또는 호스트 설정을 다시 확인하세요.

5. 방화벽 설정 확인

우분투 방화벽(UFW)을 사용 중인 경우 MySQL 포트(기본: 3306)가 열려 있는지 확인하세요.

방화벽 상태 확인:

bash
sudo ufw status

MySQL 포트를 열려면:

bash
sudo ufw allow 3306
sudo ufw reload

6. DB_HOST 설정 변경 (외부 서버 사용 시)

DB_HOSTlocalhost 대신 실제 MySQL 서버 IP 주소(175.202.41.78)로 설정해 보세요.
wp-config.php 파일에서:

php
define('DB_HOST', '175.202.41.78');

외부 서버일 경우 확인할 사항:

  • MySQL 서버에서 외부 접속이 허용되었는지 확인:
    sql
    GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'%' IDENTIFIED BY '비밀번호';
    FLUSH PRIVILEGES;
  • MySQL 설정 파일(/etc/mysql/mysql.conf.d/mysqld.cnf)에서 bind-address 항목이 0.0.0.0 또는 특정 IP로 설정되어 있는지 확인하세요.

7. Apache 및 PHP 로그 확인

Apache와 PHP 로그를 확인하여 추가 오류 정보를 파악하세요.

Apache 로그:

bash
sudo tail -f /var/log/apache2/error.log

PHP 오류 로그:

bash
sudo tail -f /var/log/php*.log

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다