やりたいこと
- LinuxにPostgreSQLをインストールしたい
- Debian10系(buster)を使用
- PostgreSQL 10.11を使用
- PC: Mac
すこしハマったので忘備録的なメモ。
Linux(Debian)にPostgreSQLをインストールする手順
まず、何も設定していない状態でいきなりPostgreSQLをインストールしようとしてハマった。何度やってもうまく行かず、いろいろ調べたら「PostgreSQLをインストールするには前準備が必要」と知った。なんだよそれッッ。
リポジトリの追加
まず、リポジトリのパスを記載するためのファイルを作成する。
sudo touch /etc/apt/sources.list.d/pgdg.list
(touchだけではダメでsudo権限をつけなければいけなかった)
リポジトリのパスを記載する。
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
これは"deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main"
という文字列をechoしてリダイレクトし、ファイルに書き込んでいる。
だが、ここで注意!
apt/ buster-pgdg main
- busterの左にはスペースがあること
- busterの部分は自分が使用しているDebianのバージョンによって名前を変える
スペースを空けるのは良いとして、バージョンについては要注意。私はDebian10系を使っており、コードネームはbuster。9系ならstretch。8系ならjessie。
「あれ、自分のDebianのバージョンなんだっけ?」という方は次のコマンドでバージョンが確認できる。
cat /etc/debian_version => 10.2
各バージョンのコードネームを知るにはこちら。
Debianのコードネームがトイ・ストーリーなのでマッピングしてみた | 株式会社ランチェスター
ファイルが作成できたら次へ。
クライアント証明書をインストール
PostgreSQLの公式リポジトリを信頼するためのキーを取得する。
sudo apt-get -y install wget ca-certificates
成功したらこんな感じのが出る。
Reading package lists... Done Building dependency tree Reading state information... Done ca-certificates is already the newest version (20190110). ca-certificates set to manually installed. wget is already the newest version (1.20.1-1.1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
キーを自分のパソコンへ追加。
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
PostgreSQLをインストール
まずはインストールする前に必ずすべきアップデート。
sudo apt-get update sudo apt-get upgrade
そしてようやくPostgreSQL(10)をインストールッッ。
sudo apt-get install postgresql-10
できなければこちらも試す。
sudo apt -y install postgresql-10
インストールされているか確認。
psql --version
PostgreSQLをインストールすると、自動的にデータベースの管理ユーザー「postgresユーザー」が作成される。 よって、postgresユーザーでPostgreSQLにログインしてみる。
sudo su - postgres
これで入れるはず。
postgres@os3-390-28443:~$
できた!
しかし、このままではpostgresユーザーのパスワードは未設定であり、アカウントロック状態になっている。これではsudoコマンドをつけるしかログインする方法がないため、ユーザーパスワードを設定する必要がある。
ユーザー追加
rootでログインしていることが前提。
sudo su - postgres
次に、ユーザー作成。
createuser --pwprompt --interactive 設定したいユーザー名
今回はpdadmin
というユーザー名で作成する。
createuser --pwprompt --interactive pgadmin
こんなことが聞かれる。
Enter password for new role: Enter it again: Shall the new role be a superuser? (y/n)
パスワードを2回入力し、yを押してスーパーユーザーとして設定する。
次に、今作ったユーザーでログインしてみる。
psql -U pgadmin -d postgres -h localhost
パスワードを聞かれるので、今さっき登録したパスワードを入力する。
postgres=#
するとログインできた。
以上、PostgreSQL のインストールと、設定でした。
パスワード設定やユーザー追加については以下の記事が詳しい。 db-study.com
外部接続を許可するには。 symfoware.blog.fc2.com