自分が管理してるMovableTypeのログインIDとパスワードがわからなくなったサーバがあったので、それを調べる方法をメモとして残しておく。
悪用はしないでね。
試したバージョンはMT5.1.7サーバだけど、たぶんそんなバージョン依存するところはない・・・と思う。
<前提条件>
・FTPのパスワードがわかってるorMTのデータが格納されているMySQLのデータベースのログインID・パスワードがわかってること。
0)MySQLのログインID、パスワードがわからない場合、FTPでサーバに接続して、MovqbleTypeのシステムフォルダ内にある「mt-config.cgi」の内容をメモしておく。
1)PHPMyAdminなどのSQL発行できるサービスやコマンドラインでもなんでもいいので、MTのDBに接続する
2)mt_authorテーブルに1行挿入する。挿入する際は、既存のアカウントの中でも一番えらそうなアカウントの内容と基本同じ内容にする。
変更が必要なフィールドは以下の5つ。
author_id・・・・他の列と重複しない番号。何もいれなければ勝手に発行してくれる
author_basename, author_name, author_nickname・・・ログインするときのID
author_email・・・自分のメールアドレス。
3)以下のSQLを発行する。[]の部分は適宜数値に置き換えること。
insert into mt_author_meta(author_meta_author_id, author_meta_type, author_meta_vblob)
select [2)で発行されたauthor_id],author_meta_type, author_meta_vblob from mt_author_meta
where author_meta_author_id = [2)で参考にしたアカウントのauthor_id]
例)author_id=1のIDを参考にしながら、author_id=4 を新規発行した
insert into mt_author_meta(author_meta_author_id, author_meta_type, author_meta_vblob)
select 4, author_meta_type, author_meta_vblob from mt_author_meta
where author_meta_author_id = 1
4)以下のSQLを発行する。[]の部分は適宜数値に置き換えること。
insert into mt_permission ( permission_author_id, permission_blog_id,permission_permissions )
SELECT [2)で発行されたauthor_id], permission_blog_id,permission_permissions FROM mt_permission
WHERE permission_author_id=[2)で参考にしたアカウントのauthor_id]
例)author_id=1のIDを参考にしながら、author_id=4 を新規発行した
insert into mt_permission ( permission_author_id, permission_blog_id,permission_permissions )
SELECT 4, permission_blog_id,permission_permissions FROM mt_permission
WHERE permission_author_id=1
5)MTのログイン画面にアクセスし、「パスワードをお忘れですか?」リンクをクリックする。
当該リンクが無理やり削除されている場合、「mt.cgi?__mode=start_recover」にアクセスする
6)2)で入力したメールアドレスを入力してリセットボタンを押す
7)メールが届くので、リンクをクリックし、パスワードを入力する
8)ログイン画面から、ログインIDとパスワードを入力する
9)ログインできた!
こういう作業はそもそも必要にならないという前提で作業すべきではあるのだが、業務を引き継いだりするときに忘れがちなので備忘録として。