Lightsail에서 호스팅되는 WordPress 기반 애플리케이션의 데이터베이스 연결 오류를 해결하려면 어떻게 해야 하나요?
WordPress 기반 애플리케이션을 Amazon Lightsail에 연결할 때 다음 오류 중 하나 또는 둘 다 발생합니다. “Error establishing a database connection.” “One or more database tables are unavailable. The database may need to be repaired.” 이 문제를 해결하고 싶습니다.
간략한 설명
이러한 오류 메시지는 다음과 같은 이유로 나타납니다.
- 손상된 데이터베이스 테이블
- 차단된 원격 데이터베이스 연결
- 데이터베이스 서비스 문제
- 볼륨에 공간이 부족함
- WordPress 구성 파일의 잘못된 로그인 자격 증명
해결 방법
손상된 데이터베이스 테이블
손상된 데이터베이스 테이블을 확인하려면 다음 단계를 완료하세요.
-
example.com/wp-admin으로 이동하여 다음 오류를 찾습니다. One or more database tables are unavailable. The database may need to be repaired.
참고: example.com을 자신의 웹사이트 이름으로 바꿉니다. -
vi 편집기와 같은 텍스트 편집기를 사용하여 wp-config.php 파일에 액세스하세요.
$ sudo vi wp-config.php
-
That's all, stop editing! Happy blogging 줄 바로 앞에 다음 줄을 추가합니다.
define('WP_ALLOW_REPAIR' ,true);
-
example.com/wp-admin/maint/repair.php로 이동한 다음 데이터베이스 복구를 실행합니다.
참고: example.com을 자신의 웹사이트 이름으로 바꿉니다. -
wp-config-php 파일로 돌아가서 3단계에서 추가한 코드 줄을 제거합니다.
차단된 원격 데이터베이스 연결
데이터베이스 서버가 웹 사이트를 호스팅하는 인스턴스의 원격 연결을 허용하지 않는 경우 데이터베이스에 연결할 수 없습니다. 고가용성 및 보안을 위해 웹 사이트 데이터베이스를 Lightsail 관리형 데이터베이스에 저장하는 것이 가장 좋습니다.
데이터베이스 연결을 확인하려면 다음 단계를 완료하세요.
- wp-config.php 구성 파일에서 DB_HOST 값을 확인합니다.
참고: 값이 localhost 또는 127.0.0.1이 아닌 경우 데이터베이스는 원격 서버에 상주합니다.다음 단계에서 사용할 DB_HOST 값을 복사합니다.define('DB_HOST', '192.168.22.9');
- 포트 3306을 사용하여 서버에서 원격 서버로 텔넷합니다.
참고: 원격 서버 IP를 1단계에서 받은 DB_HOST 값으로 바꿉니다.telnet remote server IP 3306
- 연결할 수 없는 경우 원격 서버의 데이터베이스 구성에서 원격 연결을 허용하지 않는 것입니다. 원격 서버의 방화벽도 연결을 차단할 수 있습니다. 외부 데이터베이스 소유자 또는 지원 팀에 문의하여 Lightsail 인스턴스에서 연결을 설정합니다.
데이터베이스 서비스 문제
데이터베이스 서비스가 다운되었는지 확인하려면 Lightsail WordPress 인스턴스가 서버 유형으로 MySQL 또는 MariaDB를 사용하는지 확인합니다. 또한 인스턴스가 기본 Linux 시스템을 사용하는지 아니면 자체 포함 설치인 서버를 사용하는지 확인합니다. 서버 유형 및 접근 방식을 식별하려면 다음 명령을 실행합니다.
test -d /opt/bitnami/mariadb && echo "MariaDB" || echo "MySQL"
test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A" || echo "Approach B"
참고: 출력에 접근 방식 A가 표시되면 서버가 기본 Linux 시스템을 사용하는 것입니다. 접근 방식 B가 표시되면 서버는 자체 포함 설치입니다.
MySQL 데이터베이스 서버
MySQL 데이터베이스의 서비스 문제를 확인하려면 다음 단계를 완료하세요.
-
데이터베이스 서버 상태를 확인하려면 다음 명령을 실행합니다.
sudo /opt/bitnami/ctlscript.sh status mysql
-
데이터베이스가 중지된 경우 다음 명령을 실행합니다.
sudo /opt/bitnami/ctlscript.sh start mysql
-
여전히 데이터베이스 서비스를 시작할 수 없거나 시작 프로세스 중에 오류가 표시되는 경우 데이터베이스 로그를 확인하여 근본 원인을 식별합니다. 서버에서 기본 Linux 시스템을 사용하는 경우 /opt/bitnami/mysql/logs/mysqld.log 파일 위치를 확인합니다. 서버가 독립형 설치인 경우 /opt/bitnami/mysql/data/mysqld.log 파일 위치를 확인합니다. 디스크 공간이 부족하거나 사용 가능한 메모리가 부족하여 데이터베이스 성능 및 연결에 영향을 줍니다. 이러한 리소스를 확인하려면 df 및 free 명령을 실행합니다.
MariaDB 데이터베이스 서버
MariaDB 데이터베이스의 서비스 문제를 확인하려면 다음 단계를 완료하세요.
-
데이터베이스 서버 상태를 확인하려면 다음 명령을 실행합니다.
sudo /opt/bitnami/ctlscript.sh status mariadb
-
데이터베이스가 중지된 경우 다음 명령을 실행합니다.
sudo /opt/bitnami/ctlscript.sh start mariadb
-
여전히 데이터베이스 서비스를 시작할 수 없거나 시작 프로세스 중에 오류가 표시되는 경우 데이터베이스 로그를 확인하여 근본 원인을 식별합니다. 서버에서 기본 Linux 시스템을 사용하는 경우 /opt/bitnami/mariadb/logs/mysqld.log 파일 위치를 확인합니다. 서버가 독립형 설치인 경우 /opt/bitnami/mariadb/data/mysqld.log 파일 위치를 확인하세요. 디스크 공간이 부족하거나 사용 가능한 메모리가 부족하여 데이터베이스 성능 및 연결에 영향을 줍니다. 이러한 리소스를 확인하려면 df 및 free 명령을 실행합니다.
볼륨에 공간이 부족함
볼륨의 사용 가능한 디스크 공간이 100%이거나 100% 미만인 경우 데이터베이스 서비스가 중단될 수 있습니다.
서버 볼륨을 확인하려면 다음 단계를 완료하세요.
-
사용 가능한 디스크 공간의 양을 보려면 다음 명령을 실행합니다.
$ sudo df -h
출력 예시:
Filesystem Size Used Avail Use% Mounted ondevtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 400K 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/nvme0n1p1 8.0G 8.0G 0G 100% / tmpfs 389M 0 389M 0% /run/user/1000
-
사용 가능한 공간이 충분하지 않은 경우 인스턴스 크기를 늘리거나 서버에서 불필요한 파일을 삭제합니다.
-
데이터베이스 서비스를 다시 시작합니다.
WordPress 구성 파일의 잘못된 로그인 자격 증명
자격 증명 확인
다음 단계를 완료합니다.
- wp-config.php 파일로 이동합니다. DB_NAME, DB_HOST, DB_USER 및 DB_PASSWORD의 세부 정보를 다음 단계에서 사용할 텍스트 파일에 복사합니다.
- 터미널에서 데이터베이스에 액세스하려면 다음 명령을 실행합니다.
참고: DB_NAME, DB_HOST 및 DB_USER를 1단계에서 복사한 값으로 바꿉니다.sudo mysql 'DB_NAME' -h 'DB_HOST' -u 'DB_USER' -pEnter password: ********
- DB_PASSWORD 값으로 암호를 입력한 다음 Enter 키를 누릅니다.
참고: Access Denied 오류가 발생하면 자격 증명이 잘못된 것입니다. 이 문제를 해결하려면 데이터베이스 사용자 암호를 재설정합니다. - DB 호스트가 원격인 경우 wp-config.php 파일의 연결 문자열을 업데이트합니다. 데이터베이스가 동일한 서버에 있는 경우 DB_NAME이 bitnami-wordpress이고 DB_USER가 bn_wordpress인지 확인합니다.
데이터베이스 사용자 암호 재설정
다음 단계를 완료합니다.
-
/home/bitnami/bitnami_credentials에 액세스하려면 다음 명령을 실행합니다.
sudo cat /home/bitnami/bitnami_credentials
참고: 다음 단계에서 사용할 수 있도록 루트 데이터베이스 암호를 텍스트 파일에 복사합니다.
-
MySQL 또는 MariaDB 셸에 로그인하려면 다음 명령을 실행합니다.
sudo mysql -u root -pEnter password: ********
참고: mysql을 자신의의 서버로 바꾸고 ********를 1단계에서 복사한 루트 데이터베이스 암호로 바꿉니다. 암호로 로그인할 수 없는 경우 Bitnami 웹 사이트의 지침에 따라 MySQL 또는 MariaDB의 암호를 재설정합니다.
-
bitnami_wordpress 데이터베이스가 있는지 확인하려면 다음 쿼리를 실행합니다.
show databases;
-
bn-wordpress 데이터베이스 사용자가 있는지 확인하려면 다음 쿼리를 실행합니다.
SELECT user FROM mysql.user;
-
MySQL 데이터베이스를 사용하는 경우 다음 명령을 실행하여 bn-wordpress 사용자의 데이터베이스 암호를 재설정합니다.
alter user 'bn_wordpress'@'localhost' identified by 'PASSWORD';alter user 'bn_wordpress'@'127.0.0.1' identified by 'PASSWORD';
MariaDB 데이터베이스를 사용하는 경우 다음 명령을 실행하여 bn-wordpress 사용자의 데이터베이스 암호를 재설정합니다.
alter user 'bn_wordpress'@'%' identified by 'PASSWORD';
참고: PASSWORD를 자격 증명 확인의 3단계에서 wp-config.php 파일의 암호로 바꿉니다.
위의 해결 방법 중 어느 것도 문제를 해결하지 못하면 스냅샷에서 새 Lightsail 인스턴스를 시작합니다.
관련 콘텐츠
- 질문됨 18일 전lg...
- 질문됨 일 년 전lg...
- 질문됨 24일 전lg...
- 질문됨 한 달 전lg...
- 질문됨 일 년 전lg...
- AWS 공식업데이트됨 7달 전
- AWS 공식업데이트됨 3년 전
- AWS 공식업데이트됨 2년 전