目录
- 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