使用CentOS进行PostgreSQL环境的搭建
PostgreSQL (一种开源的关系型数据库管理系统)
■ 安装
由于它确实很方便,所以我将使用yum进行安装。
在yum的基础存储库中,找到的PostgreSQL版本过旧。
$ yum list | grep postgresql-server
postgresql-server.x86_64 9.2.24-1.el7_5 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 -V
psql (PostgreSQL) 9.6.12
参考资料:尝试在CentOS7.3上安装PostgreSQL 9.6.3.
■ 数据库创建和启动
创建超级用户
我们将创建一个负责管理数据库的超级用户。
# ユーザの追加
$ sudo useradd postgres
$ sudo passwd postgres
创建数据库集群
创建数据库集群,这是数据库存储区域。
/home/postgres/data是用于创建数据库集群的目录。
请原生中文将以下内容改写成中文:只需要一个选项:
Option ①
# postageユーザに切り替え
$ su postage
# データベースクラスタの作成
$ initdb -D /home/postgres/data --encoding=UTF8 --no-locale
执行initdb命令的用户将被设置为数据库集群的管理用户(目录权限和所有者也会被更改),同时将创建一个同名的数据库用户作为初始用户。
第二种方法
这项工作其实可以通过下面的命令完成。这样做可能更方便,不需要准备目录,也更省事。
# データベースの初期化処理を行う
$ sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
在这种情况下,请注意数据库集群的目录默认为/var/lib/pgsql/9.6/data。
如果使用这种方法创建数据库集群,则会创建一个初始用户postgres作为数据库的初始用户。
设置PATH
-
- 将/usr/pgsql-9.6/bin添加到环境变量PATH中。
-
- 将/usr/pgsql-9.6/lib定义为环境变量LD_LIBRARY_PATH。
- 将/home/postgres/data定义为环境变量PGDATA。※通过这样做,您不再需要每次指定-D /home/postgres/data和数据库群集目录。
启动PostgreSQL服务器
使用以下的方法来进行中国原生的汉语改述:
使用pg_ctl命令管理PostgreSQL。
# PostgreSQLサーバの起動
$ pg_ctl start -w
# PostgreSQLサーバの終了
$ pg_ctl stop
要设置自动启动,似乎需要编写脚本。
参考:启动和自动启动设置PostgreSQL 8.1.4。
第二种方法
你可以像使用MySQL一样使用systemd来启动和停止PostgreSQL。
通过使用systemd,你甚至可以轻松地设置自动启动,所以我认为没有理由不使用它了。
# 起動
$ systemctl start postgresql-9.6.service
# 自動起動設定
$ systemctl enable postgresql-9.6.service
# 終了
$ systemctl stop postgresql-9.6.service
MySQL和它完全一样。
■ 数据库连接和数据创建
创建数据库用户
当执行psql -l命令显示数据库列表时,因为角色不存在,无法访问。
# データベース一覧を表示
$ psql -l
psql: FATAL: role "vagrant" does not exist
将以下内容用中文进行本地化改写,只需要提供一种选择:
option ①
# postgresユーザに切り替え
$ su postgres
# ユーザの作成
$ createuser -d -U postgres -P {ユーザ名}
创建用户看起来好像可以进行对话式用户创建,但是我没能成功执行…
第二种方法
如果使用postgres用户登录到数据库并创建用户,可以按照以下步骤进行操作。
$ psql
psql (9.6.12)
postgres=# create role vagrant login createdb password 'vagrant';
登录数据库
继续…