Media Cleaner データベースまで全て削除する完全初期化

Media Cleaner データベースまで全て削除する完全初期化

Media Cleanerでデータベースのみにデータが残り、そのデータと紐付けされている実際のファイルが無くなっている状態になり、完全に削除できなくなってしまったという状態になった。

色々やってみたが、Media Cleanerに関する全てのデータを削除した方が早いということで、プラグイン本体からデータベースまで完全に削除することにした。
プラグインだけを削除して、新規にインストールしなおしても、データベースが残っているので同じエラーになるわけである。

そこで、まずMedia Cleanerを無効化し、削除し、その後、Media Cleaner関係のデータベースを全て削除するという方法をとった。
その後、Media Cleanerを再インストールすると全ての値が0になり、新規インストールした状態になる。

バックアップをとって必ず作業をするように

面倒でもこれは怠りなくやるように、しくじったら大変なことになるのでしっかり準備をしてから行うこと。

Media Cleanerを完全初期化する手順

以下の方法で完全に最初の何もスキャンしていない状態にすることができる。
今回、削除するのはMedia Cleaner関連だけです。

Media Cleanerを無効化して削除する

プラグインのところでいつものように一旦削除するだけ。

CORESERVERにログインする

ログインしたらデータベースを選択。データベース名とパスワードを確認。
phpMyAdminにログインするデータベース名とパスワードはこのページで見ることができる。
鍵アイコンからphpMyAdminにアクセスする。

phpMyAdminで作業をする

自分の場合、polo-web.comでは接頭辞をpolo_としているので注意。
バックアップ等で別のドメインに復元すると、そのサイトの接頭辞(wp_)になるので注意!

この接頭辞がどうなっているかは wp-config.php の72行目 $table_prefix = ‘polo_’; で確認できる。

以下は私のサイトpolo-web.comなので接頭辞がpolo_となっている前提である。(一般的にはwp_となっている可能性が高い)

以下はpolo-web.comのデータベースを選択している。
その中にMedia Clianer関係のテーブルは以下の7つになる。これを探し出す必要がある。

Media Cleaner データベースまで全て削除する完全初期化

この7つを探し出し、チェックをして削除する作業をするだけ。

このテーブルが全て削除されたかを確認するSQLコマンド

SHOW TABLES LIKE '%mclean%';

以下のように空でしたとなればOK

Media Cleaner データベースまで全て削除する完全初期化

これでデータベー内のMedia Cleaner関係のテーブルは全て削除されたことになる。

Media Cleanerを再度インストールする

インストールが済んで有効化する。
この有効化で先ほど削除した7つのテーブルが再び表示されるようになる。
このテーブルには当然ながら何も入っていない。

Media Cleanerを起動する

以下のように全て初期化したので、全ての項目が0になる。

Media Cleaner データベースまで全て削除する完全初期化

これで完全な初期化の完了になる。

後はスキャンを開始してエラーが出ないかを確認する必要がある。

以下は参考までに – SQLによる色んな実行方法もある

以下はAIに聞きながら色々試した結果を記述している。あくまで参考にということで載せている。

mcleanという同じ名前のテーブルを見つけるため以下のSQLを実行。

SHOW TABLES LIKE '%mclean%';

結果:7つのテーブルが見つかった。ここでは接頭辞がwp_でなくpolo_になっている。
WordPressの接頭辞で最初に設定したものがここに表示されている。

Media Cleaner データベースまで全て削除する完全初期化

これがMedia Clianer関係の全てのテーブルである。これを削除すれば初期化することができる。

その後、これらを以下のSQLで削除

今回の検証サイトを完全にリセットするのであれば、この7つを削除するSQL。

DROP TABLE IF EXISTS
polo_mclean_cache,
polo_mclean_duplicates,
polo_mclean_operations,
polo_mclean_refs,
polo_mclean_runs,
polo_mclean_scan,
polo_mclean_work;
Media Cleaner データベースまで全て削除する完全初期化

削除後に全ての、mcleanのテーブルが削除されたかを確認するため以下を実行。

SHOW TABLES LIKE '%mclean%';
Media Cleaner データベースまで全て削除する完全初期化

上のように、何も表示されなければ削除が成功したことになる。

MAMPでスキャンをするとエラーになる可能性がある

これは日本語のファイルがあるとMAMPではエラーになるようだ、全て日本語にすると問題ないのかもしれないが、日本語のところでエラーがログファイルに出てくる。

polo_options(wpmc_options)について

もし、初期化で問題が出た場合は、これも必要なのかな?と思うが…

以下は多分、扱う必要ないと思うが、AIに聞いた時、これが出てきたので参考までに。
このwpmcもなんだかMedia Cleanerと関係ありそうな名前ではある。

次にpolo_optionsの存在を確認。

SELECT * FROM polo_options;

更にその中にあるwpmc_という接頭辞を探すには

SELECT * FROM wp_options WHERE option_name LIKE ‘wpmc_%’;
Media Cleaner データベースまで全て削除する完全初期化

上で見つかったwp_optionsの中のwpmc_を手作業で探すと以下のところにある。

20行目:wpmc_rating_date
24行目:wpmc_schema_version
wpmc_trash_secret
wpmc_active_run_id
25行目:wpmc_options

そしてpolo_optionsのwpmc_(Media Cleanerの設定)も削除。

DELETE FROM polo_options
WHERE option_name LIKE 'wpmc_%';
Media Cleaner データベースまで全て削除する完全初期化

この削除が実行されたかを以下で確認。

SELECT option_name
FROM polo_options
WHERE option_name LIKE 'wpmc_%';
Media Cleaner データベースまで全て削除する完全初期化

0件なら削除が成功です。
これでMedia Cleanerのスキャン結果や設定を一掃できる。

その状態でMedia Cleanerを新規インストールすることができる。

Media Cleanerを無効化して削除。

ChatGPTに聞いてやった手順

それまで、色々テストしてもらったが、あまりにも時間がかかるので、「Media Cleaner」自体を完全にデータベースの内容から削除して新規にインストールし直す手順でやってもらった。

ここからphpMyAdminのSQLを実行する

MAMPのphpMyAdminで、Media CleanerのDBを選択した状態で、まずこれをSQLで実行。
mcleanという名前のテーブルを見つける。

SHOW TABLES LIKE '%mclean%';

結果:7つのテーブルが見つかった。

Media Cleaner データベースまで全て削除する完全初期化

上の画像でその通りになっている。

wp_mclean_cache
wp_mclean_duplicates
wp_mclean_operations
wp_mclean_refs
wp_mclean_runs
wp_mclean_scan
wp_mclean_work

その後、これらを削除

今回の検証サイトを完全にリセットするのであれば、この6つを削除するSQL。

DROP TABLE IF EXISTS
wp_mclean_cache,
wp_mclean_duplicates,
wp_mclean_operations,
wp_mclean_refs,
wp_mclean_runs,
wp_mclean_scan,
wp_mclean_work;

でOKです。

そしてMedia Cleanerの設定も削除します。
しかしwp_optionsの中に’wpmc_%’なるものは無いので削除不要かも、とりあえず一応削除してみる。

DELETE FROM wp_options
WHERE option_name LIKE 'wpmc_%';

これでMedia Cleanerのスキャン結果や設定を一掃できます。

wp_mcleanを一つずつ削除する場合はこれで

DELETE FROM wp_mclean_scan WHERE deleted = 1;

個別にwp_mclean_scanだけを一つ削除する場合はこれで。

完全初期化後の確認

削除後に全ての、mcleanのテーブルを表示する場合はこれ。

SHOW TABLES LIKE '%mclean%';

を実行します。

何も表示されなければOKです。

また、

SELECT option_name
FROM wp_options
WHERE option_name LIKE 'wpmc_%';

を実行して、0件なら設定も消えています。

その状態でMedia Cleanerを新規インストールします。

重要:WordPress本体のデータは触りません

今回のSQLで削除するのはMedia Cleaner関連だけです。

以下は削除しません。

  • wp_posts
  • wp_postmeta
  • 通常の wp_options
  • WordPressユーザー
  • 投稿・固定ページ
  • Media Libraryのattachment
  • wp-content/uploads の通常画像

したがって、バックアップサイトのWordPress自体は維持できます。

これからが実際の本番環境になるので、これを注視!

まずは mcleanという名前のテーブルが存在することを確認する。

SHOW TABLES LIKE '%mclean%'; 

以下がその結果、7つのテーブルが存在することになる。

現在確認できたMedia Cleaner関連テーブルは7個。

wp_mclean_cache
wp_mclean_duplicates
wp_mclean_operations
wp_mclean_refs
wp_mclean_runs
wp_mclean_scan
wp_mclean_work

この7つのテーブルを全部削除する。以下のSQLを実行する。

① Media Cleaner関連テーブルを完全削除

phpMyAdminで、次をそのまま実行してください。

DROP TABLE IF EXISTS
wp_mclean_cache,
wp_mclean_duplicates,
wp_mclean_operations,
wp_mclean_refs,
wp_mclean_runs,
wp_mclean_scan,
wp_mclean_work;

SQLで返り値が空でした(行数0)。と出るとOK。

② mcleanのテーブルが削除できたか確認

まずテーブルを確認します。テーブルを表示するSQL。

SHOW TABLES LIKE '%mclean%';

結果:

Media Cleaner データベースまで全て削除する完全初期化

何も表示されなければOKです。

これでMedia Cleanerの

  • Scan結果
  • Trash情報
  • References
  • Runs
  • Work
  • Operations
  • Duplicates
  • Cache

をまとめて削除します。

③ Media Cleanerの設定も削除

続けてこちらです。

DELETE FROM wp_options
WHERE option_name LIKE 'wpmc_%';

5行変更したことになる?

Media Cleaner データベースまで全て削除する完全初期化

前回確認した

wpmc_active_run_id
wpmc_schema_version

などもここで消えます。

次に、

SELECT option_name, option_value
FROM wp_options
WHERE option_name LIKE 'wpmc_%';

結果:何も表示されない。

Media Cleaner データベースまで全て削除する完全初期化

これも0件になれば、Media CleanerのDB設定もなくなっています。

ここで上の2つを実行した後、確認のために以下を実行。

SHOW TABLES LIKE '%mclean%';

結果、何も表示されないので完全に削除されていることになる。

Media Cleaner データベースまで全て削除する完全初期化

と

SELECT option_name
FROM wp_options
WHERE option_name LIKE 'wpmc_%';

結果、何も表示されないので完全に削除されていることになる。

Media Cleaner データベースまで全て削除する完全初期化

結果を確認、何も残っていない。

mcleanのテーブルがあるか確認するSQL

SHOW TABLES LIKE '%mclean%';

 wpmc_options を削除するSQL

DELETE FROM wp_options
WHERE option_name = 'wpmc_options';

削除を確認するSQL

SELECT option_name, option_value
FROM wp_options
WHERE option_name LIKE 'wpmc_%';

現在の状況

項目状態
wp_mclean_cache削除済み
wp_mclean_duplicates削除済み
wp_mclean_operations削除済み
wp_mclean_refs削除済み
wp_mclean_runs削除済み
wp_mclean_scan削除済み
wp_mclean_work削除済み
wpmc_optionsまだ残っている → 今から削除

wpmc_optionsが特別のテーブルになる。wp-optionの中には他にもあるが、削除するのは、このwpmc_optionsだけである。他は削除しないこと。

wpmc_optionsnの削除するSQL

DELETE FROM wp_options
WHERE option_name = 'wpmc_options';

wp_optionsを表示するSQL

polo-web.comではこれが表示されない。

SELECT * FROM wp_options;