尝试在CentOS7.3上安装PostgreSQL9.6.3
环境
-
- OS:CentOS 7.3-1611 64bit Minimal
- PostgreSQL:9.6.3
安装
安装PostgreSQL
我在 yum 上查看了一下能否从 base 仓库安装,结果发现版本是 9.2,过于旧了。
$ yum list | grep postgresql-server
postgresql-server.x86_64 9.2.18-1.el7 base
因此,请按照官方网站上的指示,先添加存储库,然后进行安装。
# pgdg96リポジトリを追加する
$ sudo yum install -y https://yum.postgresql.org/9.6/redhat/rhel-7-x86_64/pgdg-redhat96-9.6-3.noarch.rpm
# PostgreSQLサーバーをインストールする
$ sudo yum install -y postgresql96-server postgresql96-contrib
确认版本
我会检查安装并确认版本,看是否安装成功。
$ psql --version
psql (PostgreSQL) 9.6.3
由于显示为9.6.3,说明安装成功。
初始化
创建一个称为数据库群集的DB集合体,以便初始化数据库。
$ sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
Initializing database ... OK
操作步骤
服务的启动
$ systemctl start postgresql-9.6.service
服务的自动启动 de
我們將設定在操作系統啟動時自動啟動PostgreSQL。
$ systemctl enable postgresql-9.6.service
创建用户
在执行`psql -l`命令时,系统提示找不到该角色的存在。
$ psql -l
psql: FATAL: ロール"{ログインユーザー名}"は存在しません
在DB初始化时会创建一个名为postgres的用户,所以要设置密码进行登录,并创建与之前登录的用户同名的角色。
# `postgres` ユーザーにパスワードを設定する
$ sudo passwd postgres
# `postgres` ユーザーでログインする
$ su - postgres
# `postgres` へ接続する
$ psql
psql (9.6.3)
"help" でヘルプを表示します.
# ロールを作成する
postgres=# create role {ユーザー名} login createdb password '{パスワード}';
CREATE ROLE
在创建角色后,我们需要将用户返回到之前登录的状态,并确认他们是否能够操作数据库。
# DBを切断する
postgres=# \q
# `postgres` ユーザーをログアウトする
$ exit
ログアウト
# DBの一覧を出力する
$ psql -l
データベース一覧
名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権
-----------+----------+------------------+-------------+-------------------+-----------------------
postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(3 行)
我现在可以顺利地进行操作了。
停止服务
$ systemctl stop postgresql-9.6.service
其他的操作方式
请参考Mac版本,关于DB的创建和连接、表格的创建和基本命令等内容都与之相同。
请查阅以下链接。
-
- PostgreSQL: Linux downloads (Red Hat family)
-
- CentOS 7にPostgreSQL最新版をインストール – 働きたくないゆとりの備忘録
-
- PostgreSQL初期設定 in EC2 – 珈琲駆動開発
- UbuntuでPostgreSQLをインストールからリモートアクセスまでの手順 – Qiita