プロジェクト

全般

プロフィール

操作

20260707 サーバ移行06 gitbucket » 履歴 » リビジョン 1

リビジョン 1/4 | 次 »
sylow castle, 2026/07/07 22:14


20260707 サーバ移行06 gitbucket

javaは21をインストール、tomcatをインストールするときにjava-1.8.0-openjdk-headless.x86_64なるものが依存関係で入ってくる。
java21-openjdk.x86_64のインストール時にjava-21-openjdk-headless.x86_64も入っているのだが…
いつものようにmysqldump

旧サーバーで実行:

mysqldump -u root -p gitbucket > gitbucket.sql

新サーバーに持っていく。

サーバの文字コード違いでDBマイグレーションエラー

新サーバーで実行

mysqldump -u root -p gitbucket < gitbucket.sql

systemctl start tomcatするとエラー発生(/var/log/tomcat/localhost.2026-07-08.logに吐かれた)結果は以下の通り:

08-Jul-2026 06:42:52.252 重大 [main] org.apache.catalina.core.StandardContext.listenerStart クラス [gitbucket.core.servlet.InitializeListener] のリスナインスタンスにコンテキスト初期化イベントを送信中の例外です
        java.sql.SQLTransientConnectionException: (conn=10497) Referencing column 'USER_NAME' and referenced column 'USER_NAME' in foreign key constraint 'IDX_PROTECTED_BRANCH_RESTRICTION_FK0' are incompatible.

Geminiに聞くと文字コードの違いのエラーだそう。自分でALTER TABLE作って文字コード変えてやろうにもエラーが発生を確認。
Geminiは次のコマンドを提案:

# dump.sql の中の utf8 をすべて utf8mb4 に置換する
sed -i 's/utf8/utf8mb4/g' gitbucket.sql

これを実行してgitbucket.sqlを流し込んでやったらあっさり成功。

sylow castle さんが約1ヶ月前に更新 · 4件の履歴