只是想在CentOS7.6上安装PostgreSQL11.1,没想到遭遇了一场地狱般的困扰
我花了大约8个小时才完成这个工作流程。因为很辛苦所以写了备忘录。这只是为了我自己,可能对您没有什么用处。
我想要创造的环境
CentOS 7.6 是一个操作系统。
▼中间件
PostgreSQL11.1
我要用 yum 安装 PostgreSQL 11.1。
1. 删除已安装的SQL,这是为了进行本次更换工作。
# yum list installed | grep postgres
インストール済みパッケージを確認。
# yum remove postgresql postgresql-libs postgresql-server
インストール済みパッケージの削除。
# userdel -r postgres
作成済みユーザーの削除
由于CentOS 7系列的标准存储库中没有PostgreSQL 11,所以需要添加存储库。
# yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm
PostgreSQL から提供されている公式リポジトリを追加。
为了确认,请使用”yum info”命令。
# yum info postgresql11-server
利用可能なパッケージ
名前 : postgresql11-server
アーキテクチャー : x86_64
バージョン : 11.1
リリース : 1PGDG.rhel7
容量 : 4.7 M
リポジトリー : pgdg11/7/x86_64
(以下略)
ちゃんとありました。
4. 执行yum安装
# yum install postgresql11 postgresql11-server
postgresql11-serverも合わせてインストールしておきます。
# psql --version
psql (PostgreSQL) 11.1
バージョン確認。ちゃんと最新ですね。
5. 自动启动设置
# systemctl enable postgresql-11
6. PostgreSQL 的初始化
# /usr/pgsql-11/bin/postgresql-11-setup initdb
Initializing database ... OK
7. 启动PostgreSQL 11.1。
# systemctl start postgresql-11
8. 检查启动状态
# systemctl status postgresql-11
● postgresql-11.service - PostgreSQL 11 database server
Loaded: loaded (/usr/lib/systemd/system/postgresql-11.service; enabled; vendor preset: disabled)
Active: active (running) since 〇 〇〇-〇-〇 〇:〇:〇 JST; 9s ago
Docs: https://www.postgresql.org/docs/11/static/
「Active:active (running)」になってれば動いてます。
创建新的用户和测试数据库 PostgreSQL11.1。
1. 切换到根目录下的用户 “postgres”。
# su - postgres
PostgreSQLってrootから作業出来ないからね。
创建一个名为”user”的新用户。
$ createuser --login --pwprompt user
-bash: createuser: コマンドが見つかりません
ゲボ吐くかと思ったけど落ち着いて。
$ su -
一旦rootに戻りまして。
# which createuser
/usr/pgsql-11/bin/createuser
おるやんけcreateuserこの野郎お前、お前この野郎。びっくりさせやがって。
# su - postgres
再度「postgres」へ。
$ /usr/pgsql-11/bin/createuser --login --pwprompt user
新しいロールのためのパスワード:〇〇〇〇
もう一度入力してください:〇〇〇〇
今度は逃がしませんでした。パスワードを設定して控えておきましょう。
创建名为「TestDB」的测试数据库,并将其关联到新用户「user」。
$ /usr/pgsql-11/bin/createdb --owner=user TestDB
こちらもコマンドのディレクトリまで指定して。もう慣れたもんです。
4. 更改访问限制设置
通过此操作,将可以进行密码登录。听说是这样的。
$ su -
また一旦rootに戻ります。
# vi /var/lib/pgsql/11/data/pg_hba.conf
pg_hba.confを開き、末尾の方にある
# "local" is for Unix domain socket connections only
local all all peer
この部分を
# "local" is for Unix domain socket connections only
local all user password
local all all peer
こうします。
何をしたかと言うと、「local all user password」を追加しました。
半角スペースで良い感じの位置に調整したんですけど何か意味あるんですかねコレ。
終わったら「:wq」で保存して閉じます。
将更改为PostgreSQL 11.1的配置应用
# systemctl reload postgresql-11
再読み込みです。これでここまでの設定変更が反映されます。最近覚えました。
※「/var/lib/pgsql/11/data/postgresql.conf」で
「listen_addresses」や「port」を変更した場合は
# systemctl restart postgresql-11
の方が良いかもしれない。何故かreloadだと反映されなかった。
6. 检查新用户是否可以登录已创建的测试数据库。
$ psql TestDB user
-bash: psql: コマンドが見つかりません
油断した。
$ /usr/pgsql-11/bin/psql TestDB user
ユーザ user のパスワード:〇〇〇〇←さっき指定したやつ
psql (11.1)
"help" でヘルプを表示します。
TestDB=>
太好了。
当显示出「找不到命令」时,我拼命尝试设置路径,但好像并不需要这样做。
嗯,既然只是”动”,所以我们今后会进行验证。或许吧。