Mac下安裝Postgresql
目錄
- homebrew 安裝
- 啟動和關閉 postgresql
- 建立資料庫和賬戶
- 登陸控制檯指令
一.homebrew 安裝
安裝命令
eternity@TheEternitydeMacBook-Pro ~ % brew install postgresql
eternity@TheEternitydeMacBook-Pro ~ % psql --version
psql (PostgreSQL) 12.3
初始化
initdb /usr/local/var/postgres
如果出現如下提示,可以跳過此步
The files belonging to this database system will be owned by user "eternity". This user must also own the server process. The database cluster will be initialized with locale "zh_CN.UTF-8". The default database encoding has accordingly been set to "UTF8". initdb: could not find suitable text search configuration for locale "zh_CN.UTF-8" The default text search configuration will be set to "simple". Data page checksums are disabled. initdb: error: directory "/usr/local/var/postgres" exists but is not empty If you want to create a new database system, either remove or empty the directory "/usr/local/var/postgres" or run initdb with an argument other than "/usr/local/var/postgres".
二.啟動和關閉 postgresql
設成開機啟動 PostgreSQL:
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
啟動 PostgreSQL:
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
關閉 PostgreSQL:
pg_ctl -D /usr/local/var/postgres stop -s -m fast
三.建立資料庫和賬戶
1.初始化資料庫及登入
mac安裝PostgreSQL後不會建立使用者名稱資料庫,執行命令:
createdb
如果不執行 createdb,會報錯:psql: error: could not connect to server: FATAL: database "使用者名稱" does not exist
然後登入PostgreSQL控制檯:
psql
示例:
eternity@TheEternitydeMacBook-Pro postgres % psql
psql (12.3)
Type "help" for help.
eternity=#
psql
連線資料庫預設選用的是當前的系統使用者
使用\l命令列出所有的資料庫,看到已存在使用者同名數據庫、postgres資料庫,但是postgres資料庫的所有者是當前使用者,沒有postgres使用者。
2.建立使用者及資料庫
①建立postgres使用者
CREATE USER postgres WITH PASSWORD '123456';
②刪除預設生成的postgres資料庫
DROP DATABASE postgres;
③建立屬於postgres使用者的postgres資料庫
CREATE DATABASE postgres OWNER postgres;
④將資料庫所有許可權賦予postgres使用者
GRANT ALL PRIVILEGES ON DATABASE postgres to postgres;
⑤給postgres使用者新增建立資料庫的屬性
ALTER ROLE postgres CREATEDB;
這樣就可以使用postgres作為資料庫的登入使用者了,並可以使用該使用者管理資料庫
四.登陸控制檯指令
psql -U [user] -d [database] -h [host] -p [port]
-U指定使用者,-d指定資料庫,-h指定伺服器,-p指定埠
完整的登入命令,比如使用postgres使用者登入
psql -U postgres -d postgres
之前我們直接使用psql登入控制檯,實際上使用的是預設資料
user:當前mac使用者
database:使用者同名數據庫
主機:localhost
埠號:5432,postgresql的預設埠是5432
常用控制檯指令
\password:設定當前登入使用者的密碼
\h:檢視SQL命令的解釋,比如\h select。
\?:檢視psql命令列表。
\l:列出所有資料庫。
\c [database_name]:連線其他資料庫。
\d:列出當前資料庫的所有表格。
\d [table_name]:列出某一張表格的結構。
\du:列出所有使用者。
\e:開啟文字編輯器。
\conninfo:列出當前資料庫和連線的資訊。
\password [user]: 修改使用者密碼
\q:退出
使用PostgreSQL
現在來簡單的學習一下使用PostgreSQL,以下命令都在postgres=# 環境下
修改使用者密碼
之前我們用命令CREATE USER postgres WITH PASSWORD 'XXXXXX';建立了postgres使用者,現在我們來修改該使用者的密碼:
ALTER USER postgres WITH PASSWORD 'XXXXXX'
出現ALTER ROLE, 代表修改角色成功
建立和刪除資料庫使用者
建立user1使用者:CREATE USER user1 WITH PASSWORD 'XXXX'
檢視資料庫使用者列表:\du
刪除資料庫使用者:drop user user1;
建立和刪除資料庫
建立資料庫:create database testdb;
檢視資料庫列表:\l
刪除資料庫:drop database db1;
建立和刪除資料表
選擇資料庫:\c DatabaseName
,比如\c testdb
建立資料庫表:CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL);
刪除資料庫表: drop table company;
檢視資料庫資訊:\d
查詢資料:select * from company