MySQL上でWordPressのネットワーク管理者を変更

WordPressマルチサイトのネットワーク管理者のパスワードは元より、アカウント名すらも忘れ途方に暮れたので、データベースを直接弄ってどうにかしたメモ。

WordPress 4.8.15で確認。試行錯誤の結果なので間違ってたらごめんちゃい。

テーブル名やmeta_key名にはwp-config.phpで指定したプレフィックスが付いてたりするので、いい塩梅で読み替えてください。

wp_usermetaテーブルで、ネットワーク管理者にしたいユーザーの情報を書き換える。全ユーザーのメタデータが直列に格納されているので、nicknameあたりを目印にする。

meta_key meta_value 備考
wp_capabilities a:1:{s:13:”administrator”;s:1:”1″;}
wp_user_level 10
wp_user-settings hidetb=1&editor=html&libraryContent=browse&mfold=o これは書き換えなくても大丈夫かも

site_adminsの値を書き換えるわけだが、一見すると意味不明な値である。

例えば a:1:{i:0;s:7:“nwadmin”;} こんな値が入ってた場合、それぞれの意味は下表のようになる。

  • a:1
    • 要素が1つの配列(array)
  • i:0;s:7:“nwadmin”;
    • これが要素の一塊
    • i:0
      • 1番目の要素(index = 0)
    • s:7
      • 後続のユーザー名の文字数
    • “nwadmin”
      • ユーザー名

よって、書き換える箇所はs:7の部分とユーザー名。

正しくない値を入れた場合、ネットワーク管理者に反映されないだけで然程危険性はなさそうだけど、書き換えは自己責任でオナシャス。




  • blog/2020/2020-12-21.txt
  • 最終更新: 2020-12-21 22:03
  • by Decomo