今天來學習一下!我從未使用過的部分,平常有在用終端機下指令,只有用Laravel 還有連 AWS 並在機器上操作而已,資料庫用到終端機的機會真的非常非常少,但小弟我深深了解!指令的好用之處,因此今天嘗試用 MAC pgsql 操作PostgreSQL看看!
以下步驟紀錄我操作的過程,以及遇到問題的解決過程。如果想直接看整理出來的設定步驟,請直接跳到
整理後的步驟
單元
Command+空白鍵
終端機
或 iterm
按下 Enteriterm 好像是我之前有安裝 iTerm2 的原因!
圖片中 ~
表示我在家目錄的意思 可以輸入 pwd
按下 Enter 看看我們目前在哪裡!
我的家目錄是在 /Users/victor
我們是使用 Postgres.app 安裝在 MAC 中 所以可以用很簡單的方式設定環境變數,他會要求你輸入電腦登入的密碼!
sudo mkdir -p /etc/paths.d &&
echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp
接下來關掉 終端機,要完整關閉喔!
重新開啟終端機,一開始我自己超智障!我下 pgsql 指令
他們跟我說找不到!我不疑有它,認為官方文件肯定是錯的 = =
結果怎麼查都查不出來原因
還自己手動去增加環境變數的方法,還是無效!所以我有點不太清楚最後可以用是因為我自己手動增加環境變數,還是官方文件的安裝步驟。
不管如何,最後發現 我多打一個 g
這個問題讓我卡超久,本來以為連假最後一天可以出去逛逛,結果連假全部報銷
psql
但又出錯了!他說 psql: FATAL: database "victor" does not exist
我的使用者名稱不存在,於是我又不知道哪根經不對,開始想要換使用者,但我只有 root 跟我自己 victor 兩個 使用者
最後在這邊找到解答
https://stackoverflow.com/questions/17633422/psql-fatal-database-user-does-not-exist
原因好像是因為的victor使用者權限不能去控制PostgreSQL,可以回去看上面終端機的截圖,是使用victor 這個user 操作
PostgreSQL 都是使用 名稱為 postgres
的使用者去新建的,但我的電腦沒有這個使用者,所以出現這樣的錯誤! 執行下方指令,會新建一個資料庫,名稱就是使用者得名稱,擁有者也是使用者的名稱
createdb
用victor 這個使用者去操作資料庫權限,然後連線看看!
psql -h localhost
成功!!
原本我的 Postgres.app 畫面 下方也是顯示空的,經歷過這些過程以後,Postgres.app 畫面顯示了!我建立過的資料庫了!(可能是我之前權限設定並沒有設定好!下次再來研究一下!環境配置跟權限)
後來也發現直接點選如上圖的 animal 資料庫圖示!就可以直接登入資料庫,使用終端機的方式去下操作 PostgreSQL。(好像是我之前都沒有用victor這個使用者操作原因)
在要發鐵人賽文章前確認一下,發現!我用victor權限,根本不能操作animal 資料庫!
所以上查詢了一下要怎麼登入
psql "host=localhost user=postgres password=1234 port=5432 dbname=animal"
選擇登入的伺服器localhost
(本機),user名稱postgres
(這是預設值) 密碼之前我設定1234
,port號可以在Postgres.app 介面查詢(預設是5432) 並且決定要連結哪一個資料庫,上方指令設定 animal
!
這樣就可以成功登入 animal 資料庫!
終端機
或 iterm
sudo mkdir -p /etc/paths.d &&
echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp
終端機
或 iterm
。 要完全關閉。psql "host=localhost user=postgres password=1234 port=5432 dbname=animal"
<-自行替換變數https://postgresapp.com/documentation/cli-tools.html