워드프레스 설치 오류: CREATE command denied 해결 방법

워드프레스 설치 과정에서 다음과 유사한 오류 메시지가 발생하며 진행이 멈출 수 있습니다.

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 서버 접속

  1. 라즈베리파이의 터미널을 엽니다.
  2. 다음 명령어를 사용하여 MariaDB 서버에 관리자 권한(root 사용자)으로 접속합니다.
  3. sudo mysql -u root -p 아니면 mysql -u root -p
  4. 비밀번호를 입력하라는 메시지가 나타나면 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';

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *