MacOS 中 PostgreSQL 的安装及使用
DataBase
2019-07-30
2025
0
安装
使用brew
安装
brew install postgresql
启动 postgresql
brew services start postgresql
设置开机启动
pg_ctl -D /usr/local/var/postgres -l logfile start
查看版本
postgres -V
配置 Postgres
创建物理数据库
如果你看到initdb: directory “/usr/local/var/postgres”
这个提示说明目录文件已经存在,可以选择删除重新创建。 你稍后连接这个数据库的时候也会看到名叫postgres
数据。这个 postgres 的数据库为第三方工具访问 PostgreSQL的默认数据库。这些工具连接的时候默认会连它。
initdb /usr/local/var/postgres
创建和删除数据库
# 通过命令行
createdb mydatabasename
dropdb mydatabasename
# 通过 SQL 语句
CREATE DATABASE mydatabasename;
DROP DATABASE mydatabasename;
# 修改数据库名
ALTER DATABASE super_awesome_application RENAME TO even_more_awesome_application;
访问数据库
使用\list
列出你所有的数据库。除了前面提到的postgres
还有template0
和template1
,不要删除了,有用。
psql mydatabasename
-- 指定用户访问
psql postgres -U patrick
- \list - 列出所有数据库
- \c mydatabasename - 连接另一个数据库
- \d - 列出当前数据库的一些 schema
- \d mytablename - 显示指定表的信息
- \du 显示用户
使用
创建用户
通过CREATE ROLE
语句创建用户
CREATE ROLE username WITH LOGIN PASSWORD 'quoted password' [OPTIONS]
修改密码
postgres=# \password username
设置权限
## 给予CREATEDB权限
postgres=# ALTER ROLE username CREATEDB;
## 给予super_awesome_application数据库的访问呢权限
GRANT ALL PRIVILEGES ON DATABASE super_awesome_application TO username;
命令行命令
- createuser:创建用户
- createdb:创建数据库
- dropuser:删除用户
- dropdb:删除数据库
- pg_dump:将数据库导出到文件
- pg_dumpall:将所有数据库都导出到文件
- psql:你已经用过了
问题处理
连接不到数据库
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
删除以下postmaster.pid
文件即可
/usr/local/var/postgres/postmaster.pid
0条评论