0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DebianでpostgreSQLを使ったspringbootを動かす

Last updated at Posted at 2025-01-05

目標

Windowsで作ったspringbootプロジェクトをDebian上で動かしたい。

基本情報

  • Java バージョン:17
  • Spring Boot バージョン:3.3.6
  • PostgreSQL バージョン:17.2
  • Debian バージョン:12.8
    バージョンはこれに合わせて設定します。他のバージョンを使いたい場合はそれに合わせて適宜変更しながら行ってください

手順の概要

  1. サーバーに JavaPostgreSQL をインストールする。
  2. Spring Boot アプリケーションの jar ファイルを配置する。
  3. ローカル環境のデータベースを dumpファイル を使って移行する。
  4. 実行する

Javaのインストール

まずは、サーバーに Java をインストールします。
以下のコマンドを実行してください:

apt update
apt install openjdk-17-jdk

Yes,NOを聞かれたらyと答えてください。

postgreSQLのインストール

次にpostgreSQLをインストールします。

公開鍵の取得

まずはPostgreSQLのリポジトリから取得するための公開鍵を取得します。
wget等をインストールして公開鍵を取得します。
以下のコマンドを実行してください

apt install wget
apt install gnupg
wget -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /usr/share/keyrings/postgresql-keyring.gpg

PostgreSQLのリポジトリをシステムに追加

次はシステムにPostgreSQLのリポジトリを追加していきます。
以下のコマンドを実行してください

echo "deb [signed-by=/usr/share/keyrings/postgresql-keyring.gpg] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main" > /etc/apt/sources.list.d/postgresql.list

その後更新します。

apt update

PostgreSQLをインストール

最後にPostgreSQLをインストールします。
以下のコマンドを実行してください:

apt install postgresql-17

以上で、postgeSQLのインストール完了です。

これでできない場合

  • Debianのバージョンを確認してください。Debian12に対応する方法(追加しているPostgreSQLのリポジトリがDebian12用)なのでほかのバージョンだと、実行できないかもしれません。

jarファイルの配置

jarとは、javaのプロジェクトを一つのファイルにまとめて実行できるものです。
springbootのjarファイルを作成し、FTPソフトなどを使ってDebian上に配置します。
今回は、Debian上にhome/user/javaのディレクトリを作成しそこに配置します。

jarファイルの作成

JavaプロジェクトをVScode上で作成しかつMavenを使っているので、VScode上でターミナルを開き以下のコマンドを実行します。

./mvnw package

これで、targetディレクトリの直下に作成されます。
jarファイルの作成方法はいろいろありますが、これでできない人は調べてください。

参考までに、

その後FTPソフト等でファイルを配置してください、FTPの使い方は説明省略します。

DBの作成

ローカルのDBの内容をそのままDebian上にコピーする手順です。

postgreSQLの設定

まず、postgresユーザーにパスワードを設定します。
設定ファイルをテキストエディタで開いて設定を変更します。
今回はvimを使います
以下のコマンドで設定ファイルを開けます。

vim /etc/postgresql/17/main/pg_hba.conf

以下の行を見つけたら、peerをtrustに変換します。

local   all             postgres                                peer

その後再起動します。

service postgresql restart

今の作業で、postgres内にパスワードなしで接続することができます。
以下のコマンドでpostgresに接続します。

psql -U postgres

そして以下のコマンドを実行し、接続のためのパスワードを設定します。
なお、今回はパスワードに'postgres'としましたが、各自パスワードを設定してください。

ALTER USER postgres PASSWORD 'postgres';

パスワードを設定後、接続を解除し(\qを入力し接続解除)、先ほどと同じ方法で再度設定ファイルを開きます。
そして、先ほど変更した以下の行をもう一度変更し、trustをmd5に変換します。

local   all             postgres                                trust

最後に、先ほどと同じ方法で再起動します。
今の設定で、postgresに設定したパスワードをもとに接続できます。

DBの作成

ローカルのDBのバックアップを作成します。

pg_dump -U postgres -d DBname -F c -b -v -f "C:\path\to\backup\dumpname.dump"

-dにコピーしたいDB名を入力し、dumpファイル作成先のパスとdumpファイル名は各自で決めてください。
dumpファイルを作成したら、それをFTPソフト等を使ってDebian上に配置します。今回は先ほど作成したhome/user/javaに配置しようと思います。別にどこ置いたっていいです。

配置完了後、一度postgreSQLに接続し、バックアップしたDBと同じ名前のDBを作成します。

psql -U postgres 
CREATE DATABASE DBname;

DB作成後、接続を解除し、以下のコマンドを実行しDBをコピーします。
DB名dumpファイル名は各自設定したものにしてください。

pg_restore -U postgres -d DBname -v /home/user/java/dumpname.dump

これで、DBがコピーされました。

実行

以下のコマンドを実行しjarファイルを実行します
実行時に、jarファイルの配置している階層に移動するか、パスを指定するかして実行してください。
実行時には、自分のjarファイル名を指定してください。

java -jar jarname.jar

これで完了です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?