워드프레스 설치 과정에서 다음과 유사한 오류 메시지가 발생하며 진행이 멈출 수 있습니다.
WordPress database error: [CREATE command denied to user 'wordpressdatabase'@'localhost' for table `wordpressdatabase`.`wp_users`]
이 오류는 워드프레스가 데이터베이스에 필요한 테이블을 생성하려고 시도할 때, 해당 데이터베이스 사용자에게 테이블 생성 권한(CREATE
권한)이 없기 때문에 발생합니다.
본 문서에서는 이 오류의 원인과 해결 방법을 단계별로 안내합니다.
1. 오류 원인 분석
오류 메시지 CREATE command denied to user 'wordpressdatabase'@'localhost' for table \
wordpressdatabase`.`wp_users“는 다음 정보를 담고 있습니다.
CREATE command denied
: 테이블을 생성하려는 명령이 거부되었습니다.user 'wordpressdatabase'@'localhost'
: 데이터베이스에 접근하려는 사용자가'wordpressdatabase'
이며, 접속 위치는'localhost'
입니다. 이는 워드프레스가 라즈베리파이 내에서 데이터베이스에 접속하려고 시도하고 있음을 의미합니다.- **
for table \
wordpressdatabase`.`wp_users`**: 생성하려던 테이블이
‘wordpressdatabase’데이터베이스 내의
‘wp_users’` 테이블입니다. 워드프레스는 사용자 정보를 저장하기 위해 이 테이블을 필요로 합니다.
결론적으로, 워드프레스 설정 과정에서 입력한 데이터베이스 사용자 'wordpressdatabase'@'localhost'
에게 'wordpressdatabase'
데이터베이스 내에 테이블을 생성할 권한이 부족하여 오류가 발생한 것입니다.
2. 해결 방법: MariaDB 권한 설정
이 문제를 해결하기 위해서는 MariaDB 서버에 접속하여 'wordpressdatabase'@'localhost'
사용자에게 'wordpressdatabase'
데이터베이스에 테이블을 생성할 수 있는 CREATE
권한을 부여해야 합니다.
단계별 해결 절차:
2.1. MariaDB 서버 접속
- 라즈베리파이의 터미널을 엽니다.
- 다음 명령어를 사용하여 MariaDB 서버에 관리자 권한(
root
사용자)으로 접속합니다. sudo mysql -u root -p
아니면mysql -u root -p
- 비밀번호를 입력하라는 메시지가 나타나면
root
사용자의 비밀번호를 입력하고 엔터 키를 누릅니다.
2.2. 데이터베이스 선택 (선택 사항)
작업할 데이터베이스를 명시적으로 선택할 수 있습니다.
USE wordpressdatabase;
2.3. 사용자에게 CREATE
권한 부여
다음 명령어를 사용하여 'wordpressdatabase'@'localhost'
사용자에게 'wordpressdatabase'
데이터베이스 내에 테이블을 생성할 수 있는 CREATE
권한을 부여합니다.
GRANT CREATE ON wordpressdatabase.* TO 'wordpressdatabase'@'localhost';
GRANT CREATE
:CREATE
권한을 부여하는 명령어입니다.ON wordpressdatabase.*
:'wordpressdatabase'
데이터베이스의 모든 테이블(*
)에 대한 권한을 의미합니다.TO 'wordpressdatabase'@'localhost'
: 권한을 부여할 사용자 이름('wordpressdatabase'
)과 접속 호스트('localhost'
)를 지정합니다.
2.4. 필요한 추가 권한 부여 (권장)
워드프레스는 테이블 생성 외에도 데이터를 삽입, 조회, 수정, 삭제하는 등 다양한 데이터베이스 작업을 수행합니다. 원활한 워드프레스 설치 및 운영을 위해 다음과 같은 기본적인 권한들을 함께 부여하는 것을 권장합니다.
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON wordpressdatabase.* TO 'wordpressdatabase'@'localhost';
이 명령어는 'wordpressdatabase'@'localhost'
사용자에게 'wordpressdatabase'
데이터베이스의 모든 테이블에 대해 다음 권한들을 부여합니다.
SELECT
: 데이터 조회INSERT
: 데이터 삽입UPDATE
: 데이터 수정DELETE
: 데이터 삭제CREATE
: 테이블 생성DROP
: 테이블 삭제INDEX
: 인덱스 생성ALTER
: 테이블 구조 변경
2.5. 권한 변경 사항 적용
권한을 부여한 후에는 반드시 다음 명령어를 실행하여 변경 사항을 MariaDB 서버에 적용해야 합니다.
FLUSH PRIVILEGES;
2.6. MariaDB 서버 접속 종료
모든 권한 설정을 완료했으면 다음 명령어를 사용하여 MariaDB 프롬프트를 종료합니다.
exit
3. 추가 확인 사항
- 사용자 및 데이터베이스 존재 여부: 워드프레스 설치를 시도하기 전에
'wordpressdatabase'
데이터베이스와'wordpressdatabase'
사용자가 MariaDB에 이미 생성되어 있어야 합니다. 만약 생성되어 있지 않다면 MariaDB에 접속하여 먼저 생성해야 합니다.- 데이터베이스 생성:
CREATE DATABASE wordpressdatabase;
- 사용자 생성 및 비밀번호 설정:
CREATE USER 'wordpressdatabase'@'localhost' IDENTIFIED BY '원하는password';
- 데이터베이스 생성: