推荐brew安装,如果还你还没有安装brew,点这里
# 在安装之前,最好确认下是不是安装过了
brew list
# 开始安装
brew install postgresql
# 验证是否安装成功了
psql --version
创建数据库
- createdb testDB(也可以这样:createdb -h localhost -p 5432 -U user testDB意思在本地给用户user创建一个数据库testDB,如果提示说找不到user,可以用psql --help命令来查看用户,在Connection options模块里)
如果出现下面的错误
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"?
解决方法:
这意味着该服务器没有启动,或者没有在 createdb 预期的地方启动
# 开启,与之相反的是 brew services stop postgresql
brew services start postgresql
出现错误:
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
运行以下命令:
rm /usr/local/var/postgres/postmaster.pid
# 在stack overflow还看到下面的解决方式,可能是之前有创建过一个文件(postmaster.pid)引起的
rm /usr/local/var/postgres/postmaster.pid
# 删除postgresql
brew uninstall postgresql
# 删除postgres文件
rm -rf /usr/local/var/postgres
# 删除pg
gem uninstall pg
# 重新安装
brew install postgres
# 如果出现这样的情况
could not connect to database postgres: FATAL: role "用户名" does not exist
没有创建 PostgreSQL 用户账号就会出现这个情况(解决方法就是到创建用户)
- createdb(这样创建的数据库,是以用户名为数据库名来创建出来的)
- dropdb testDB(删除数据库)
- psql testDB(进入数据库)
psql (版本号)
Type "help" for help.
testDB=>
- 如果上面的testDB=>是testDB=#这意味着你是数据库的超级用户
数据库操作
create user 用户名 with password '密码';(创建数据库用户,这里有一点要注意的,就是分号要记得打上,还有就是与这个命令相同的 "create role" ,这两个命令几乎是完全相同的,唯一的区别是"create user" 命令创建的用户默认带有login属性,而"create role" 命令创建的用户默认不带login属性)
alter user 用户名 with password '密码';(修改密码,注意:密码要用单引号包含)
\du (查看数据库用户列表)
drop user 用户名;(删除数据库用户)
\l (查看数据库列表)
\c 数据库名称 (切换数据库)
create database 数据库名称;(创建数据库)
drop database 数据库名称;(删除数据库)
create table 表名称;(创建表)
drop table 表名称;(删除表)
alter role 用户名 login;(给用户添加login属性)
alter命令
ALTER ROLE name [ [ WITH ] option [ ... ] ]
where option can be:
SUPERUSER | NOSUPERUSER
| CREATEDB | NOCREATEDB
| CREATEROLE | NOCREATEROLE
| CREATEUSER | NOCREATEUSER
| INHERIT | NOINHERIT
| LOGIN | NOLOGIN
| REPLICATION | NOREPLICATION
| CONNECTION LIMIT connlimit
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
| VALID UNTIL 'timestamp'
ALTER ROLE name RENAME TO new_name
ALTER ROLE name [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT }
ALTER ROLE name [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT
ALTER ROLE name [ IN DATABASE database_name ] RESET configuration_parameter
ALTER ROLE name [ IN DATABASE database_name ] RESET ALL
网友评论