Mac下安裝Postgresql


目錄

  1. homebrew 安裝
  2. 啟動和關閉 postgresql
  3. 創建數據庫和賬戶
  4. 登陸控制台指令

一.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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM