ラズベリーパイ4 Model B 4GB + Ubuntu 20.04.1 LTS Server の環境に PostgreSQL用に pgAdmin 4 をインストールしてみます。
こんな感じです。
OSやPostgreSQL / PostGISのインストールなどはこのページ参照
以下の手順はこのページを参考にしています。元ネタ
若干アレンジしています。
1. システムをアップデートしておく
1 |
sudo apt-get update |
2. 必要なパッケージをインストール
1 2 3 |
sudo apt-get install build-essential libssl-dev libffi-dev libgmp3-dev sudo apt-get install python3-virtualenv libpq-dev python3-dev |
3. 仮想環境を作っておく
1 2 3 4 5 |
sudo mkdir pgAdmin4 cd pgAdmin4 sudo virtualenv pgAdmin4 |
4. 仮想環境をアクティベート
1 2 3 |
cd pgAdmin4 source bin/activate |
5. pgAdmin 4をダウンロード
1 |
sudo wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v4.20/pip/pgadmin4-4.20-py2.py3-none-any.whl |
6. pgAdmin 4をインストール
おまじない
1 |
sudo chmod 777 -R /home/pgAdmin4/pgAdmin4 |
インストール
1 |
pip install pgadmin4-4.20-py2.py3-none-any.whl |
7. 構成
1 |
nano lib/python3.8/site-packages/pgadmin4/config_local.py |
以下を記述
1 2 3 4 5 6 7 |
import os DATA_DIR = os.path.realpath(os.path.expanduser(u'~/.pgadmin/')) LOG_FILE = os.path.join(DATA_DIR, 'pgadmin4.log') SQLITE_PATH = os.path.join(DATA_DIR, 'pgadmin4.db') SESSION_DB_PATH = os.path.join(DATA_DIR, 'sessions') STORAGE_DIR = os.path.join(DATA_DIR, 'storage') SERVER_MODE = False |
8. pgAdmin 4を実行
pgAdminはブラウザーから利用しますが、Ubuntu 20.04.1 LTS ServerにはGUIがないので、このままでは何もできません。
このページでやったように、Firefoxをインストールしておいて、WindowsのリモートデスクトップでpgAdmin4を開いてみます。18.04で記述していますがFirefoxは20.04でもインストールできます。
仮想環境にいる場合は、他のSSHコンソールを開いて作業をします。
上ぺージの作業終了後、以下を実行してpgAdminを起動しておきます。
1 |
python lib/python3.8/site-packages/pgadmin4/pgAdmin4.py |
flask-htmlminモジュールでエラーが出た場合
pip install flask-htmlmin
python lib/python3.8/site-packages/pgadmin4/pgAdmin4.py
Windowsのリモートデスクトップを起動
Startメニュー>Windowsアクセサリー>リモートデスクトップ接続
ラズパイのIPアドレスで接続してユーザー名とパスワードでログインします。
ApplicationsメニュにFirefoxがあるのが確認できます。
Firefoxを起動して、http://127.0.0.1:5050 にアクセスします。
Master Passwordを聞いてきます、適当なパスワードを入力
pgAmin4
再起動後も仮想環境で実行
sudo reboot
cd pgAdmin4
virtualenv pgAdmin4
cd pgAdmin4
source bin/activate
python lib/python3.8/site-packages/pgadmin4/pgAdmin4.py
これをシェルスクリプトで実行する場合(例:~/pa_venv.sh)、以下で起動
cd ~/
sudo chmod 777 pa_venv.sh
source pa_venv.sh
Ctrl + Cで終了
deactivate で仮想環境を抜けます。
注
source pa_venv.shで盛大にPermissionErrorが出る場合
実行されていると思いますが、Errorが気になる場合、以下を実行
1 |
sudo chmod 777 -R /home/routeserver/pgAdmin4 |
日本語化してみます。
Configureを選択。
ReferencesのUser LanguageでJapaneseを選択してSave
ブラウザーをリロード
pgAdmin4はPostgreSQLのデータベースがなければ意味ないです。まだの場合は以下を参考にしてデータベースを作っておいてください。
pgAdmin4でタイルサーバーで作ったデータベースをのぞいてみます
タイルサーバーのPostgreSQLには関西サブリージョンのデータがロードされています。
どんなデータベースができているんでしょう?
まず、2つのファイルを編集してpgAdminが接続できるようにしておきます。セキュリティ上、これは後で戻しておきます。
1 |
sudo nano /etc/postgresql/12/main/postgresql.conf |
以下のコメントアウトを外します。
listen_addresses = ‘localhost’
1 |
sudo nano /etc/postgresql/12/main/pg_hba.conf |
以下の2行をtrustに修正
1 2 3 4 5 |
#local all all peer local all all trust #host all all 127.0.0.1/32 md5 host all all 127.0.0.1/32 trust |
PostgreSQLを再起動
1 |
sudo systemctl restart postgresql |
pgAdminで接続
GeneralのNameには適当な名前でいいです(例:TileDB)。
Connectionでは、アドレスはlocalhost(127.0.0.1)、タイルサーバーを作る際にラズパイで最初に作成しておいたユーザー名とパスワードを入力してSave。
入れない場合、User->postgres、Password->なし、でお試しください
ダッシュボードはこんな感じです。
まずは、SSHコンソールで、テーブルを確認してみます。
1 2 3 4 5 6 7 |
sudo -u postgres -i psql postgres=#\c gis gis=#\dt |
全テーブルの件数は以下でチェック
1 |
gis=#select relname, n_live_tup from pg_stat_user_tables where schemaname='public'; |
pgAdminで見てみます。
スキーマのpublicでテーブルデータが確認できます。
Appendix
UbuntuのServer版にインストールされたアプリをWindowsのリモートデスクトップなどから開いてみる
SSHでも問題なく動作します(多少プアなLinux端末でもOK)。
Appendix2
データベースサイズの確認
DBに入る(or pgAdmin4ならDB指定してQuery Tool)
以下実行
1 |
SELECT datname, pg_size_pretty(pg_database_size(datname)) FROM pg_database; |
Leave a Reply