最近在做一個etl導入插件,因爲公司有寫部門用了postgres數據庫,這個數據庫從mysql被oralce收購以後號稱最好的開始數據庫。
我們需要通過psql客戶端去連服務端,但是它不像mysql那樣輸入:
mysql -h127.0.0.1-udev -p123456 -P 3306
postgres它不能直接輸入密碼,需要交互式的輸入:
psql -U username -h 127.0.0.1 -p 5432 -t -d database
這個時候你需要手動輸入密碼
但是沒地方可以輸入這個密碼, 所以需要搞一個自動的形式
看了一些postgres數據庫,支持這種,發現有兩種方法(還有別的方法,希望周知一下)
第一種方式:配置一個環境變量PGPASSWORD,這個只需要在執行psql命令之前執行:
export PGPASSWORD=password
第二種方式:配置一個配置文件.pgpass文件,格式像下面這樣就行:
127.0.0.1:5432:*:postgres:postgres
這種方式需要你去配置一個文件,注意這個需要放在用戶主目錄下面下,~/.pgpass,還需要注意這個文件的權限,至少當前用戶能讀取到這個文件吧,這個很容易理解吧,還有就是需要權限配成0600,命令:sudo chmod 0600 ~/.pgpass