1. 程式人生 > >Postgresql DB安裝和使用問題記錄

Postgresql DB安裝和使用問題記錄

遇到 post put 網上 ecif cif rom ive lin

2.選擇語言後提示:

Error: There has been an error.

Please put SELinux in permissive mode and then run installer again. SELinux can

be put in enforcing mode again after installation.

Press [Enter] to continue :

解決方案:

需要臨時關閉SELinux

setenforce 0 ##設置SELinux 成為permissive模式

##setenforce 1 設置SELinux 成為enforcing模式

3.所有的指令,比如pg_ctrl提示:

-bash:pg_ctrl: command not found

解決方案:

這樣的指令必須加上路徑,即使是在當前目錄下,也要用./pg_ctl

可以設置環境變量解決:

export PATH=/opt/PostgresPlus/9.2AS/bin:$PATH

4.pg_ctl等指令提示:

pg_ctl: no database directory specified and environment variable PGDATA unset

解決方案:

需要設置環境變量:

export PGDATA=/opt/PostgresPlus/9.2AS/data

5.完成安裝後,遠程連接數據庫出現問題:執行請求的操作時遇到錯誤:IO 錯誤: Got minus one from a read call

網上查的,打算修改一下opt/PostgresPlus/9.2AS/data|pg_hba.conf配置文件,可是當前用戶沒有權限

打算切換到postgresql用戶,發現忘了密碼了

passwd指令修改密碼,登陸成功

pg_hba.conf文件增加行:host all all 0.0.0.0/0 trust

用pg_ctl restart重啟數據庫

修改服務端data/postgresql.conf

文件,將

#listen_address=‘localhost‘ 改成 listen_addresses = ‘*‘

6.restart失敗,無法關閉數據庫

按提示,增加參數:pg_ctl restart -m fast

7.重啟失敗,start也失敗,提示

2014-10-12 00:06:56 CST 致命錯誤: 組或其他用戶都可以訪問數據目錄 "/opt/PostgresPlus/9.2AS/data"

2014-10-12 00:06:56 CST 詳細信息: 權限應該為 u=rwx (0700).

解決方案:

修改權限:chmod 0700 data

切換到 具有root權限的用戶,
1.先把文件夾 “/var/lib/pgsql/9.3/data” 的用戶所屬組,給postgres 用戶:

進入/var/lib/pgsql/9.3目錄
cd /var/lib/pgsql/9.3
chown -R postgres:postgres data

2.把data目前的所有文件及子目錄文件權限改成: rwx (0700)

chmod -R 0700 data

重啟PostgreSQL 數據庫,問題解決。

1.postgresql 啟動報錯 pg_ctl:PID file "/database/data/postmaster.pid" does not exist

解決方案:

原因: /pgdata目錄權限問題,chown -R postgres:root /pgdata ,成功解決

8.啟動報錯:

2014-10-12 00:22:33 CST 日誌: 已加載的庫 "$libdir/dbms_pipe"

2014-10-12 00:22:33 CST 日誌: 已加載的庫 "$libdir/edb_gen"

2014-10-12 00:22:33 CST 日誌: 無法創建 IPv6 套接字: 協議不支持的地址族

開始以為是IPv6的問題,後來根據後面的提示,查看日誌:

2014-10-12 01:39:15 CST 日誌: 無效認證方法"127.0.0.1/32"

2014-10-12 01:39:15 CST 上下文: 配置文件"/opt/PostgresPlus/9.2AS/data/pg_hba.conf"的第82行

2014-10-12 01:39:15 CST 致命錯誤: 無法加載pg_hba.conf

解決方案:

是pg_hba.conf的問題,經檢查是5中配置錯誤,將配置改為:

host all all 0.0.0.0/0 md5

啟動成功

9.登陸報錯:

-bash-4.1$ psql

Password:

psql: 致命錯誤: 用戶 "enterprisedb" Password 認證失敗

解決方案:

將host all all 0.0.0.0/0 md5

改為host all all 0.0.0.0/0 trust

允許用戶名密碼認證

10.接上回,輸入psql提示enterprisedb不存在

直接輸入psql的話,會默認尋找和當前用戶名一致的數據庫名,但是沒有這個數據庫

應該輸入:psql template1

成功:

template1=#

進入後:create database enterprisedb

或者不進入數據庫,用createdb指令

然後再次psql就能直接進入enterprisedb了

查看現有數據庫:

enterprisedb=# select oid,datname from pg_database;

oid | datname

-------+--------------

1 | template1

14077 | template0

14082 | postgres

14083 | edb

16384 | enterprisedb

(5 rows)

11.刪除data目錄,重新initdb數據庫

解決方案:

在data目錄下:rm -rf *

然後 initdb建立新的數據庫

12.修改用於enterprisedb密碼

這裏需要註意,enterprisedb可能是linux的密碼,也可能是數據庫的密碼,這裏修改的是數據庫的密碼

postgres=# ALTER USER enterprisedb with password ‘admin‘;

13.進入數據庫後如何退出:

template1=# quit

14.創建和刪除用戶:

createuser 是 SQL 命令 CREATE USER的封裝。

dropuser刪除用戶

Postgresql DB安裝和使用問題記錄