1.為數據庫創建一個pg_test_user用戶;
上面顯示沒有找到共享庫,這時看看/opt/postgresql/lib這個目錄有沒加到環境變量LD_LIBRARY_PATH中。
輸出為空,現在將其導入環境變量。
再次執行創建用戶命令。
OK,選yes,創建一個超級用戶。
查看一下用戶是否存在。
另一種查看用戶信息的方法:
2.刪除用戶
執行dropuser username即可
3.使用標准SQL創建及刪除用戶方法,此方法在創建完成后需要為用戶添加權限,負責使用不了,方法見后面博客文檔。
4. 另一種解決動態庫加載問題的方法:
以root用戶在/etc/ld.so.conf文件中加入so文件所在路徑:
添加完成后,執行/sbin/ldconfig –v 使其生效。
5 Linux下動態庫使用小結
1. 靜態庫和動態庫的基本概念
靜態庫,是在可執行程序連接時就已經加入到執行碼中,在物理上成為執行程序的一部分;使用靜態庫編譯的程序運行時無需該庫文件支持,哪里都可以用,但是生成的可執行文件較大。動態庫,是在可執行程序啟動時加載到執行程序中,可以被多個可執行程序共享使用。使用動態庫編譯生成的程序相對較小,但運行時需要庫文件支持,如果機器里沒有這些庫文件就不能運行。
2. 如何使用動態庫
如何程序在連接時使用了共享庫,就必須在運行的時候能夠找到共享庫的位置。linux的可執行程序在執行的時候默認是先搜索/lib和/usr/lib這兩個目錄,然后按照/etc/ld.so.conf里面的配置搜索絕對路徑。同時,Linux也提供了環境變量LD_LIBRARY_PATH供用戶選擇使用,用戶可以通過設定它來查找除默認路徑之外的其他路徑,如查找/work/lib路徑,你可以在/etc/rc.d/rc.local或其他系統啟動后即可執行到的腳本添加如下語句:LD_LIBRARY_PATH =/work/lib:$(LD_LIBRARY_PATH)。並且LD_LIBRARY_PATH路徑優先於系統默認路徑之前查找(詳細參考《使用 LD_LIBRARY_PATH》)。
不過LD_LIBRARY_PATH的設定作用是全局的,過多的使用可能會影響到其他應用程序的運行,所以多用在調試。(LD_LIBRARY_PATH 的缺陷和使用准則,可以參考《Why LD_LIBRARY_PATH is bad》)。通常情況下推薦還是使用gcc的-R或-rpath選項來在編譯時就指定庫的查找路徑,並且該庫的路徑信息保存在可執行文件中,運行時它會直接到該路徑查找庫,避免了使用LD_LIBRARY_PATH環境變量查找。