プロジェクト

全般

プロフィール

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

sylow castle, 2026/07/07 22:14

1 1 sylow castle
# 20260707 サーバ移行06 gitbucket
2
3
javaは21をインストール、tomcatをインストールするときにjava-1.8.0-openjdk-headless.x86_64なるものが依存関係で入ってくる。
4
java21-openjdk.x86_64のインストール時にjava-21-openjdk-headless.x86_64も入っているのだが…
5
いつものようにmysqldump
6
7
旧サーバーで実行:
8
```
9
mysqldump -u root -p gitbucket > gitbucket.sql
10
```
11
12
新サーバーに持っていく。
13
14
## サーバの文字コード違いでDBマイグレーションエラー
15
16
17
新サーバーで実行
18
```
19
mysqldump -u root -p gitbucket < gitbucket.sql
20
```
21
22
systemctl start tomcatするとエラー発生(/var/log/tomcat/localhost.2026-07-08.logに吐かれた)結果は以下の通り:
23
24
```
25
08-Jul-2026 06:42:52.252 重大 [main] org.apache.catalina.core.StandardContext.listenerStart クラス [gitbucket.core.servlet.InitializeListener] のリスナインスタンスにコンテキスト初期化イベントを送信中の例外です
26
        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.
27
```
28
29
Geminiに聞くと文字コードの違いのエラーだそう。自分でALTER TABLE作って文字コード変えてやろうにもエラーが発生を確認。
30
Geminiは次のコマンドを提案:
31
32
```
33
# dump.sql の中の utf8 をすべて utf8mb4 に置換する
34
sed -i 's/utf8/utf8mb4/g' gitbucket.sql
35
```
36
37
これを実行してgitbucket.sqlを流し込んでやったらあっさり成功。