기존에 설치하여 사용하고 있던 워드프레스에서 wp-config.php 파일의 $table_prefix를 변경하려면 다음 스텝에따라 진행하자.
본 포스팅에서는 다음 상황을 가정하고 설명할 예정이다.
- 기존 $table_prefix = ‘wp_’
- 변경된 $table_prefix = ‘newprefix_’
1. DB 테이블명 변경
DB에 접속해서 변경된 prefix를 가지도록 DB명을 변경한다. DB명을 변경 후 워드프레스 사이트에 로그인 해보면 정상적인 로그인이 되고 사이트가 작동하는것을 볼 수 있다.
하지만 기존 사용자들의 capability와 role이 인식이 제대로 되지 않는것을 발견 할 수 있다.
이를 고치기 위해서 2번 스텝을 진행한다.
2. 기존 table_prefix와 관련된 테이블 내 값 변경
옵션테이블과 유저메타 테이블에 프리픽스와 연관된 항목이 있기때문에 이 항목의 키값들을 새 프리픽스를 가지도록 변경해주어야 한다.
- newprefix_options 테이블 수정
option_name
컬럼이wp_user_roles
이라고 되어있는 옵션값이 존재한다. 이 값을newprefix_user_roles
로 변경해야한다.- 다음 쿼리를 실행하면 된다.
UPDATE newprefix_options SET option_name='newprefix_user_roles' WHERE option_name='wp_user_roles';
- newprefix_usermeta 수정
meta_key
컬럼이wp_user_level
이라고 되어있는 메타값이 존재한다. 이 값을newprefix_user_level
로 변경해야한다.meta_key
컬럼이wp_capabilities
이라고 되어있는 메타값이 존재한다. 이 값을newprefix_capabilities
로 변경해야한다.-
다음 쿼리를 실행하면 된다.
UPDATE newprefix_usermeta SET meta_key='newprefix_user_level' WHERE meta_key='wp_user_level'; UPDATE newprefix_usermeta SET meta_key='newprefix_capabilities' WHERE meta_key='wp_capabilities';
이제 워드프레스 사이트에서 확인해보면 정상적으로 권한이 잘 동작하고 있는것을 확인 할 수 있다.
WordPress capability error after table prefix renamed