Postgres SQLの導入・環境設定・DBの読み込み
概要
PostgreSQLの導入とDBの基本操作についてまとめる
PostgreSQLの導入
Ubuntu 20へのPostgreSQLの導入は下記コマンドを実行する。
sudo apt update sudo apt install postgresql postgresql-contrib
合わせてPostgreSQLのGUI管理ツールである"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情報が表示される。
roleの作成
最初から登録してあるroleの"postgres"はユーザー登録等に使うスーパーユーザー権限を持つ管理者用のroleである。 データベース操作は他roleで行ったほうが良いためroleを追加する。pgadmin4の”Login/Group Rolesを右クリックして新規roleを追加する。 この際、"Privileges"タブから新規DBを作成する権限を付与する。
DBの読み込み
DBの基本操作の題材として、postgreSQLチュートリアル用に下記サイトでサンプルDBを公開している。
上記サイトからdvdrental.zipをダウンロードする。その後、読み込み用のDBをpgadminから新規作成する。(ownerを↑で作成したroleにしておく) その後下記コマンドを用いてサンプルDBをリストアする。
pg_restore -d newdb --role=user -O -x '/home/path/dvdrental.tar'
正しく読み込めると下記のようにサンプルDBが表示できる。