iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 27
0
AI & Data

後端前進PostgreSQL系列 第 27

PostgreSQL 黑畫面操作 - MAC 初探psql紀錄 (1)

今天來學習一下!我從未使用過的部分,平常有在用終端機下指令,只有用Laravel 還有連 AWS 並在機器上操作而已,資料庫用到終端機的機會真的非常非常少,但小弟我深深了解!指令的好用之處,因此今天嘗試用 MAC pgsql 操作PostgreSQL看看!

以下步驟紀錄我操作的過程,以及遇到問題的解決過程。如果想直接看整理出來的設定步驟,請直接跳到整理後的步驟單元

設定環境變數

  1. 打開 macOS 的電腦
  2. 鍵盤按住 Command+空白鍵
  3. 輸入 終端機iterm 按下 Enter

iterm 好像是我之前有安裝 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 指令 /images/emoticon/emoticon06.gif

終端機

他們跟我說找不到!我不疑有它,認為官方文件肯定是錯的 = =

結果怎麼查都查不出來原因

還自己手動去增加環境變數的方法,還是無效!所以我有點不太清楚最後可以用是因為我自己手動增加環境變數,還是官方文件的安裝步驟。

不管如何,最後發現 我多打一個 g 這個問題讓我卡超久,本來以為連假最後一天可以出去逛逛,結果連假全部報銷 /images/emoticon/emoticon02.gif

正確是 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 畫面顯示了!我建立過的資料庫了!(可能是我之前權限設定並沒有設定好!下次再來研究一下!環境配置跟權限)

Postgres.app

後來也發現直接點選如上圖的 animal 資料庫圖示!就可以直接登入資料庫,使用終端機的方式去下操作 PostgreSQL。(好像是我之前都沒有用victor這個使用者操作原因)

Postgres.app

在要發鐵人賽文章前確認一下,發現!我用victor權限,根本不能操作animal 資料庫!

所以上查詢了一下要怎麼登入

psql "host=localhost user=postgres password=1234 port=5432 dbname=animal"

選擇登入的伺服器localhost(本機),user名稱postgres (這是預設值) 密碼之前我設定1234,port號可以在Postgres.app 介面查詢(預設是5432) 並且決定要連結哪一個資料庫,上方指令設定 animal

這樣就可以成功登入 animal 資料庫!


整理後的步驟

  1. 打開 終端機iterm
  2. 執行
sudo mkdir -p /etc/paths.d &&
echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp
  1. 重新開啟 終端機iterm要完全關閉
  2. 下指令 psql "host=localhost user=postgres password=1234 port=5432 dbname=animal" <-自行替換變數
  3. 成功登入

參考

https://postgresapp.com/documentation/cli-tools.html


上一篇
PostgreSQL Trigger
下一篇
PostgreSQL 黑畫面操作 - MAC 初探psql紀錄 (2)
系列文
後端前進PostgreSQL30

尚未有邦友留言

立即登入留言