Mac 配置PostgreSQL的填坑之路

推荐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

你可能感兴趣的:(Mac 配置PostgreSQL的填坑之路)