同じ8系列だからいけるっしょ!と思ったら案外ハマった。。
■デフォルトの認証プラグインが変わった
caching_sha2_password に変わったので以下の要領でmysql_native_passwordを利用しているユーザーを変更していく
ALTER USER 'mtuser'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'パスワード';
■上記の影響でMovableTypeからDBへ接続できない
以下リファレンスを参考にDBIConnectOptions設定をmt-config.cgiに追記
ローカル環境なので証明書のverifyは無効(=0)にした(ほんとはちゃんとしないとね。。)
DBIConnectOptions - 環境変数リファレンス | CMSプラットフォーム Movable Type ドキュメントサイト
初めての試みとして ChatGPT にスクリプトを書かせて半自動化してみた
スクリプト自体は dry-run モードの実装等追加にて要件足したけど問題なく完成。実行も問題なし
ただし、mt-upgrade.cgi をたたいた際にMySQLサーバの sql_mode に STRICT_TRANS_TABLES が入っていたためエラーで停止。。。
そこで、以下のように一時的に sql_mode から STRICT_TRANS_TABLES を外して無事アップグレード成功
-- 現在値を控えておく(メモにコピペしておく)
SHOW VARIABLES LIKE 'sql_mode';
-- STRICT_TRANS_TABLES を外す
SET GLOBAL sql_mode = REPLACE(@@GLOBAL.sql_mode, 'STRICT_TRANS_TABLES', '');
-- STRICT_ALL_TABLES が入っていればこれも外す
SET GLOBAL sql_mode = REPLACE(@@GLOBAL.sql_mode, 'STRICT_ALL_TABLES', '');
-- 念のためhttpd再起動後mt-upgrade.cgiを実施、完了したら以下のように元に戻す
SET GLOBAL sql_mode = '<元の値>';
Movable Type 5への乗り換えのためのメモ
基本は公式サイト通りなのですがね
システムメニュー -> ツール -> バックアップ
で全体のバックアップ取得
データベースサーバを MySQL に変更
ユーザと空のDB用意
mt-config.cgi の向き先を MySQL に変更
mt.cgi へアクセスして項目をてけとーに記入してログイン
システムメニュー -> ツール -> 復元
で全体の復元開始
ブログ画面の 3カラムのメイン、サブに割り当ててたウィジェットが消えてるのでちまちま戻す
全体の再構築実施
以上
気が向いたら MT 5 に乗り換えよう
昨日設定したばかりの RoundCube
どーも送信するときにステキに文字化けするようで
回避策がわかりません><;
ってことで送信のときだけ squirrelmail 利用中
なんとかなりませんかね。。。
たぶんなんでもかんでもUTF-8で送ってるのがだめなんだろうけど、よくわからねぇw
ついでに バックエンド DB がpostgresql だと激しくエラーを吐いていたため
mysqlに変更
ついでにバックアップスクリプト作成 && 変更
mysqldump 使うだけの単純なスクリプトだけどね。。。