Postgresql DB安裝和使用問題記錄
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安裝和使用問題記錄