techno_memo

個人用の技術メモ。python・ROS・AI系のソフトウェア・ツールなどの情報を記載

Postgres SQLの導入・環境設定・DBの読み込み

概要

PostgreSQLの導入とDBの基本操作についてまとめる

PostgreSQLの導入

Ubuntu 20へのPostgreSQLの導入は下記コマンドを実行する。

sudo apt update
sudo apt install postgresql postgresql-contrib

合わせてPostgreSQLGUI管理ツールである"pgadmin4"をインストールする。

sudo curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add
sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt 
update'
sudo apt install pgadmin4

インストール後にメールアドレスとパスワードを設定する。

sudo /usr/pgadmin4/bin/setup-web.sh

pgadmin4でDB情報にアクセスするためには、postgreSQLの管理用ロールである"postgres"のユーザー名を変更する必要がある。 下記コマンドでパスワードを変更する。 (xxxxxxxに設定したいパスワードを入力)

sudo -u postgres psql -c "ALTER ROLE postgres WITH password 'xxxxxxx'"

また、デフォルトではDBのアクセス設定とubuntuのユーザー名が一致していないとエラーとする設定としているため/etc/postgresql/12/main/pg_hba.confの 下記行を変更する。

# "local" is for Unix domain socket connections only
local   all             all                                     md5

上記設定を完了後に下記コマンドでpostgreSQLのサービスを再起動してブラウザでhttp://127.0.0.1/pgadmin4/にアクセスする。

sudo service postgresql restart

pgadminの左の"Servers"を右クリックしてCreate->Serverを選択し、下記設定を入力する。 (HostName以降の設定はConnectionタブに切り替えて入力)

Name: PostgreSQL 12
ServerGroup: Servers
HostName/address: localhost
Port: 5432
Username: postgres
Password: xxxxxxx (↑の手順で入力したもの)
Store password: Checked

正しく設定できると下記のようにDB情報が表示される。 f:id:sd08419ttic:20211114150508p:plain

roleの作成

最初から登録してあるroleの"postgres"はユーザー登録等に使うスーパーユーザー権限を持つ管理者用のroleである。 データベース操作は他roleで行ったほうが良いためroleを追加する。pgadmin4の”Login/Group Rolesを右クリックして新規roleを追加する。 この際、"Privileges"タブから新規DBを作成する権限を付与する。

f:id:sd08419ttic:20211114151239p:plain

DBの読み込み

DBの基本操作の題材として、postgreSQLチュートリアル用に下記サイトでサンプルDBを公開している。

www.postgresqltutorial.com

上記サイトからdvdrental.zipをダウンロードする。その後、読み込み用のDBをpgadminから新規作成する。(ownerを↑で作成したroleにしておく) その後下記コマンドを用いてサンプルDBをリストアする。

pg_restore -d newdb --role=user -O -x '/home/path/dvdrental.tar' 

正しく読み込めると下記のようにサンプルDBが表示できる。

f:id:sd08419ttic:20211114171719p:plain

参考書


これからはじめる PostgreSQL入門

参考サイト

postgresweb.com

obel.hatenablog.jp