JETBOYへの手動の引っ越し|wp-config.phpとテーブル接頭辞の点検
JETBOYのマニュアルには、WordPressを手動で移す手順が8つの段階で書かれています。ファイルをFTPで移し、データベースをphpMyAdminで書き出して取り込み、wp-config.php を新しいデータベースの情報に書き換える流れです。ここで間違えやすいのが、$table_prefix(テーブル名の接頭辞)です。データベースは移行元のテーブルをそのまま取り込むため、接頭辞は取り込んだテーブルの名前と同じにしておく必要があります。この記事では、マニュアルの手順を整理し、wp-config.php と書き出したSQLが合っているかを点検するPythonを、WordPress公式のサンプルファイルで動かします。
(確認:JETBOY サポートサイト「WordPressお引越し(手動でのデータ移動)」、WordPress公式のリポジトリの wp-config-sample.php。確認日:2026年10月30日。筆者はJETBOYへ実際に移して確かめてはいません。SQLは説明用に作った短い例です)
マニュアルの手順
- JETBOYのcPanelで、移行元と同じドメインの「アドオンドメイン」を作る
- 「MySQLデータベースウィザード」で、データベースとユーザーを作る(名前とパスワードは任意)
- 移行元のWordPressのファイル(ドキュメントルート配下のすべて)を、FTPで手元のPCに保存する
- 移行元のphpMyAdminで、データベースを書き出す(方法は「詳細」、テーブルは全選択、zip形式、SQL形式。「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT コマンドを追加する」にチェック)。下の点検のコードに渡す時は、zip を展開した .sql のファイルを使う
- JETBOYのphpMyAdminで、新しいデータベースを指定して取り込む
- ファイルを、FTPでJETBOYのドキュメントルート直下へ上げる
- ファイルマネージャーで
wp-config.phpを開き、DB_NAME・DB_USER・DB_PASSWORD と$table_prefixを書き換える - ドメインのネームサーバーを ns1.jetboy.jp・ns2.jetboy.jp に変える
マニュアルの手順7では、$table_prefix を「新しいWordPressのテーブルプレフィックス」に書き換えるとあります。手順5で取り込んだテーブルは移行元の名前のままなので、ここは移行元の wp-config.php に書かれていた値と同じにするのが正しい、と筆者は読みます(WordPressは、この接頭辞を付けた名前のテーブルを読むため)。
コード:設定とSQLが合っているかを点検する
# WordPressを手動で移す時に、wp-config.php の設定と、取り込む SQL(phpMyAdmin の書き出し)が合っているかを点検する(読み取りのみ)
# 1) wp-config.php の DB_NAME・DB_USER・DB_PASSWORD・DB_HOST と $table_prefix を読む
# 2) SQL の CREATE TABLE からテーブル名を集め、$table_prefix で始まるか、options・posts・users があるかを見る
# 3) DROP TABLE が入っているか(入っていないと、同じ名前のテーブルがある所へ取り込んだ時に失敗する)
# 使い方: python check_move.py wp-config.php export.sql [prefix を変えて試す時の値](.sql.zip は展開してから渡す)
import re
import sys
cfg = open(sys.argv[1], encoding='utf-8').read()
sql = open(sys.argv[2], encoding='utf-8').read()
consts = dict(re.findall(r"define\(\s*'(DB_NAME|DB_USER|DB_PASSWORD|DB_HOST)'\s*,\s*'([^']*)'\s*\)", cfg))
m = re.search(r"\$table_prefix\s*=\s*'([^']*)'", cfg)
prefix = sys.argv[3] if len(sys.argv) > 3 else (m.group(1) if m else '')
print('wp-config.php')
for k in ('DB_NAME', 'DB_USER', 'DB_PASSWORD', 'DB_HOST'):
v = consts.get(k, '(なし)')
placeholder = v.endswith('_here')
shown = '****' if k == 'DB_PASSWORD' and not placeholder else v
print(f' {k:<12}{shown:<22}{"← 書き換えが必要(サンプルのまま)" if placeholder else ""}')
print(f' $table_prefix {prefix}')
tables = re.findall(r'CREATE TABLE (?:IF NOT EXISTS )?`([^`]+)`', sql) # 書き出しの設定で IF NOT EXISTS が付く場合も読む
pre = sorted({t[:t.index('_') + 1] for t in tables if '_' in t})
print(f'\nSQL のテーブル: {len(tables)}個 接頭辞: {", ".join(pre)}')
ok = all(t.startswith(prefix) for t in tables) and tables
print(f' $table_prefix「{prefix}」と一致: {"はい" if ok else "いいえ ← WordPressがテーブルを見つけられない"}')
for core in ('options', 'posts', 'users'):
print(f' {prefix}{core}: {"あり" if prefix + core in tables else "なし"}')
print(f' DROP TABLE の行: {"あり" if re.search(r"DROP TABLE", sql) else "なし ← 書き出しのオプションを確かめる"}')
例として使ったSQL(接頭辞が abc_ のテーブルを書き出した場合を想定した短い例):
-- 例:phpMyAdmin の「エクスポート」で作られる SQL の一部(説明用に短くしたもの。実際のデータではない)
DROP TABLE IF EXISTS `abc_options`;
CREATE TABLE `abc_options` (
`option_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`option_name` varchar(191) NOT NULL DEFAULT '',
`option_value` longtext NOT NULL,
PRIMARY KEY (`option_id`)
);
INSERT INTO `abc_options` VALUES (1,'siteurl','https://example.com'),(2,'home','https://example.com');
DROP TABLE IF EXISTS `abc_posts`;
CREATE TABLE `abc_posts` (
`ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`ID`)
);
DROP TABLE IF EXISTS `abc_users`;
CREATE TABLE `abc_users` (
`ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`ID`)
);
実行の結果(Python 3)
$ python check_move.py wp-config-sample.php example_export.sql
wp-config.php
DB_NAME database_name_here ← 書き換えが必要(サンプルのまま)
DB_USER username_here ← 書き換えが必要(サンプルのまま)
DB_PASSWORD password_here ← 書き換えが必要(サンプルのまま)
DB_HOST localhost
$table_prefix wp_
SQL のテーブル: 3個 接頭辞: abc_
$table_prefix「wp_」と一致: いいえ ← WordPressがテーブルを見つけられない
wp_options: なし
wp_posts: なし
wp_users: なし
DROP TABLE の行: あり
$ python check_move.py wp-config-sample.php example_export.sql abc_
wp-config.php
DB_NAME database_name_here ← 書き換えが必要(サンプルのまま)
DB_USER username_here ← 書き換えが必要(サンプルのまま)
DB_PASSWORD password_here ← 書き換えが必要(サンプルのまま)
DB_HOST localhost
$table_prefix abc_
SQL のテーブル: 3個 接頭辞: abc_
$table_prefix「abc_」と一致: はい
abc_options: あり
abc_posts: あり
abc_users: あり
DROP TABLE の行: あり
- WordPress公式のサンプルのままだと、DB_NAME・DB_USER・DB_PASSWORD がサンプルの値で、接頭辞は
wp_ - 取り込むテーブルの接頭辞が
abc_なのにwp_のままだと、WordPressは必要なテーブルを見つけられない。WordPressを新しく入れる画面が出るなどの症状になる(筆者の理解) - 接頭辞を
abc_に合わせると、options・posts・users のテーブルがそろう
ほかに気をつけること(筆者の考え)
- DB_HOST:マニュアルの手順では書き換えの対象に入っていない。JETBOYのデータベースのホスト名は、cPanelの表示やマニュアル「WordPressデータベース情報の確認方法」で確かめる
- パスワードを貼る時:
wp-config.phpを人に見せる時やスクリプトの結果を共有する時は、パスワードを伏せる(上のコードは伏せて表示する) - ネームサーバーを変える前に表示を確かめる:移転先のWordPressを公開前に見る方法。
wp-config.phpの設定の意味はwp-config.phpの主な設定にあります - 手間をかけたくない時:JETBOYには、初回3サイトまで引っ越しを無料で代行するサービスがある(JETBOYの設定代行)
この記事で確かめていないこと
- JETBOYのデータベースのホスト名(localhost で動くか)
- 大きなデータベースを phpMyAdmin で取り込む時の上限
- 移行元のサーバーの種類による、書き出しの画面の違い
まとめ
- JETBOYへの手動の引っ越しは、アドオンドメイン・データベースの作成 → ファイルとデータベースの移動 →
wp-config.phpの書き換え → ネームサーバーの変更、の順 $table_prefixは、取り込んだテーブルの接頭辞(移行元と同じ値)に合わせる。違うとWordPressがテーブルを見つけられない- 書き出しでは DROP TABLE を追加する設定にする。設定とSQLが合っているかは、上のコードで点検できる
本記事はJETBOYの公式マニュアルと、WordPress公式のサンプルファイルにもとづく整理です。プランと料金はJETBOYのプランと料金にまとめています。


