美文网首页
Mac 配置PostgreSQL的填坑之路

Mac 配置PostgreSQL的填坑之路

作者: AgoniNemo | 来源:发表于2017-07-28 11:56 被阅读608次

    推荐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的填坑之路

          本文链接:https://www.haomeiwen.com/subject/ejqtlxtx.html