背景:由于業(yè)務(wù)需求矮烹,有時(shí)候可能需要在一臺機(jī)器上安裝兩個(gè)相同的數(shù)據(jù)庫,區(qū)別是端口號不同~(以下是機(jī)器上已有一臺數(shù)據(jù)庫嘴办,只記錄創(chuàng)建第2個(gè)數(shù)據(jù)庫的過程)
步驟:
1茸塞、首相需要?jiǎng)?chuàng)建一個(gè)存放數(shù)據(jù)的文件夾
mkdir pgdata
2、然后切換到postgres用戶下
su -? postgres
如果這一步出現(xiàn)This account is currently not available.則需要修改 /etc/passwd描沟,將末尾的/sbin/nologin修改為/bin/bash, 修改方式如下:
vi /etc/passwd飒泻,找到postgres鞭光,直接修改后綴,然后保存泞遗。再次su -??postgres衰猛,成功切換到postgres用戶
3、執(zhí)行initdb刹孔,初始化數(shù)據(jù)庫,會生成配置文件
/usr/lib/test/initdb -D /pg/pgsql/pgdata?
/usr/lib/test/initdb 為系統(tǒng)安裝的initdb 執(zhí)行文件目錄娜睛,?/pg/pgsql/pgdata是第一步創(chuàng)建的數(shù)據(jù)文件夾目錄髓霞。
這一步如果出現(xiàn)fixing permissions on existing directory /pg/pgsql/pgdata ... initdb: error: could not change permissions of directory "/pg/pgsql/pgdata": Operation not permitted,說明postgres用戶沒有操作該文件夾的權(quán)限畦戒,解決方案是:
首先確認(rèn)該文件夾的所有者:
ls -la
顯示該目錄的所有者是root方库,修改該文件夾的所有者為postgres?,之后再次執(zhí)行initdb
chown -R postgres?/pg/pgsql/pgdata
4障斋、切換到第一步創(chuàng)建的pgdata 目錄下纵潦,修改配置文件 postgresql.conf
在修改前最好先備份一份,防止自己改錯(cuò)~
重點(diǎn)修改以下幾個(gè)參數(shù):
data_directory = '/pg/pgsql/pgdata'? ? 第一步創(chuàng)建的文件夾目錄
hba_file = '/pg/pgsql/pgdata/pg_hba.conf'? initdb生成的pg_hba.conf文件路徑
ident_file = '/pg/pgsql/pgdata/pg_ident.conf'??initdb生成的pg_hba.conf文件路徑
listen_addresses = '*'? ?
port = 5433? ?修改成自己設(shè)定的端口號
保存垃环,退出邀层。
5、啟動數(shù)據(jù)庫:
su -s /bin/bash -c '/usr/lib/test/bin/pg_ctl -D ?/pg/pgsql/pgdata -l logfile start' postgres
如果出現(xiàn)server started遂庄,則數(shù)據(jù)庫創(chuàng)建成功