WordPressのテーブル名を変更する(プレフィックスの変更)
問題
WordPressのデータベースやテーブルを整理していて、テーブル名を変更したのですが、するとログインはできるものの、管理画面にアクセスできなくなりました。
テーブル名を変更したので、wp-config.php のプレフィックス設定も変更しています。
いったいどうなってるの?
答え
「wp_」などのテーブル名のプレフィックスを変更して、テーブル名を変更したい場合もあると思います。
テーブル名の変更と、wp-config.php の $table_prefix の変更だけでは、ログインできはしますが、権限が正しく読み込まれません。「このページにアクセスするための十分なアクセス権がありません。」のエラーになったりします。
以下をおこなう必要があります。
(1)wp-config.php の $table_prefix = 'wp_';
を変更する(例:$table_prefix = 'wp123_';
)
(2)テーブル名の変更(例:wp_ → wp123_)
SQLでは以下のように。
ALTER TABLE ~ RENAME TO ~;
(3)wp_optionsとwp_usermeta内の3つのレコードを編集する。
以下のようなSQLを実行する。
UPDATE 変更後のプレフィックスoptions SET option_name = 'wp123_user_roles' WHERE option_name = '変更前のプレフィックスuser_roles'; UPDATE 変更後のプレフィックスusermeta SET meta_key = 'wp123_capabilities' WHERE meta_key = '変更前のプレフィックスcapabilities'; UPDATE 変更後のプレフィックスusermeta SET meta_key = 'wp123_user_level' WHERE meta_key = '変更前のプレフィックスuser_level';
例:
UPDATE wp123_options SET option_name = 'wp123_user_roles' WHERE option_name = 'wp_user_roles'; UPDATE wp123_usermeta SET meta_key = 'wp123_capabilities' WHERE meta_key = 'wp_capabilities'; UPDATE wp123_usermeta SET meta_key = 'wp123_user_level' WHERE meta_key = 'wp_user_level';
コメント