eternity@TheEternitydeMacBook-Pro ~ % brew install postgresqlcss
eternity@TheEternitydeMacBook-Pro ~ % psql --versionjava
psql (PostgreSQL) 12.3sql
initdb /usr/local/var/postgres數據庫
若是出現以下提示,能夠跳過此步bash
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".
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start服務器
pg_ctl -D /usr/local/var/postgres stop -s -m fast編輯器
mac安裝PostgreSQL後不會建立用戶名數據庫,執行命令:post
createdb學習
若是不執行 createdb,會報錯:psql: error: could not connect to server: FATAL: database "用戶名" does not existui
而後登陸PostgreSQL控制檯:
psql
示例:
eternity@TheEternitydeMacBook-Pro postgres % psql
psql (12.3)
Type "help" for help.
eternity=#
psql
鏈接數據庫默認選用的是當前的系統用戶
使用\l命令列出全部的數據庫,看到已存在用戶同名數據庫、postgres數據庫,可是postgres數據庫的全部者是當前用戶,沒有postgres用戶。
①建立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,如下命令都在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