美文网首页
postgresql创建用户和库

postgresql创建用户和库

作者: 天秤座的牛宝宝 | 来源:发表于2017-09-03 16:01 被阅读0次

    环境

    • centos 7.2
    • postgresql 9.6

    过程

    在服务器上安装了postgresql后,确认5432端口成功被监听,却无论如何都连不上数据库,在这里浪费了超过2小时的时间,最后才解决了问题,正确的过程整理如下:

    1.在centos终端中输入以下代码,以postgres用户登陆终端

    root:# su - postgres
    

    (因为postgres的管理器会以当前用户名为user名称进行登陆,由于默认postgres没有root名称的user,所以会报错)

    2.创建名称为dbuser的新用户

    -bash-4.2$ createuser -s dbuser
    

    -s 的意思是以superuser的身份创建用户dbuser

    3.使用刚才新建的用户来创建数据库mydb

    $ createdb -O dbuser mydb
    

    4.对 dbuser 用户加上密码
    dbuser 的身份登录 postgresql

    psql -U dbuser -d mydb
    

    其中 -U 的意思是以用户某某来登录, -d 的意思是链接 mydb 这个数据库

    登录成功后,终端符号会变成 mydb=#,我们输入

    mydb=# \password
    

    连续输入两次密码即可

    网上的大多数文章只能帮你到这了,但是你会发现,根本连不上postgres,不管是本机,还是网络中的其他机器,在花费了不少时间后,我发现了第5步

    5.修改postgres的配置文件
    默认安全策略下postgres是禁止机器访问的,需要修改

    # vim /var/lib/pgsql/9.6/data/pg_hba.conf
    

    在这个文件的末尾处,修改如下

    # "local" is for Unix domain socket connections only
    local   all             all                                     trust
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            trust
    # IPv6 local connections:
    host    all             all             ::1/128                 trust
    

    修改了配置后,需要重启 postgresql 服务,然后就可以很顺畅地链接了
    6.通过远程地址访问postgresql
    如果你想要通过非本机来访问pg,那么还需要修改postgresql.conf,我的路径为

    # vim /var/lib/pgsql/9.6/data/postgresql.conf
    

    将`listen addresses = 'localhost' 这一行(原文被注释了)修改为

    # etc...
    listen addresses = '*'
    # etc...
    

    这样的话,数据库变为监听任何发往本机指定端口的信息了


    小贴士

    全局搜索

    如果你没有 pg_hba.conf 这个目录,可以通过

    find / -name "pg_hba.conf"
    

    来搜索这个文件

    重启 postgresql 服务的方法

    • 通过命令来重启
    systemctl reload postgresql-9.6.service
    
    • 通过 postgresql 命令重启
    /usr/pgsql-9.6/bin/pg_ctl reload
    

    关闭iptables

    如果你的服务器在更高层面上有安全组之类的设置,那么基本上就可以关掉iptables了
    1.关闭iptables

     systemctl stop firewalld.service
    

    2.禁止开机启动

     systemctl disable firewalld.service
    

    感谢以下文章给予的帮助
    PostgreSQL新手入门(阮一峰)
    Getting authentication failed error with postgresql from command line

    相关文章

      网友评论

          本文标题:postgresql创建用户和库

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