代码之家  ›  专栏  ›  技术社区  ›  A.G.Progm.Enthusiast

postgresql,不安装,在windows下运行,但服务器不在centos linux下启动

  •  0
  • A.G.Progm.Enthusiast  · 技术社区  · 6 年前

    我已经从这里下载了Windows版本的PostgreSQL: https://www.enterprisedb.com/products-services-training/pgbindownload

    我解压缩了它并执行了下面的命令来运行服务器,它在Windows 10中工作:

    D:\postmaster_standalone\postgresql-11.0-2-windows-x64-binaries\pgsql\bin>initdb -D C:/Users/myuser/pgdataTest -U postgres -E UTF8
    
    D:\postmaster_standalone\postgresql-11.0-2-windows-x64-binaries\pgsql\bin>pg_ctl -D C:/Users/myuser/pgdataTest start
    waiting for server to start....2018-11-20 23:06:37.912 IST [14540] LOG:  listening on IPv6 address "::1", port 5432
    2018-11-20 23:06:37.912 IST [14540] LOG:  listening on IPv4 address "127.0.0.1", port 5432
    2018-11-20 23:06:38.231 IST [11352] LOG:  database system was shut down at 2018-11-20 23:05:02 IST
    2018-11-20 23:06:38.385 IST [14540] LOG:  database system is ready to accept connections
     done
    server started
    
    D:\postmaster_standalone\postgresql-11.0-2-windows-x64-binaries\pgsql\bin>psql -U postgres
    psql (11.0)
    WARNING: Console code page (437) differs from Windows code page (1252)
             8-bit characters might not work correctly. See psql reference
             page "Notes for Windows users" for details.
    Type "help" for help.
    
    postgres=# 
    

    在我的世纪里,我和 uname -m command 它返回x86_64。 从上面的链接中,我下载了Linux x86-64版本10.6的二进制文件。

    然后,我按以下顺序执行了与windows中类似的步骤,但服务器没有启动:

    [cloudera@quickstart bin]$ initdb -D /home/cloudera/pgdata -U postgres -E UTF8 
    The files belonging to this database system will be owned by user "cloudera".
    This user must also own the server process.
    -----
    -----
    The database cluster will be initialized with locale en_US.UTF-8.
    Success. You can now start the database server using:
    
        postgres -D /home/cloudera/pgdata
    or
        pg_ctl -D /home/cloudera/pgdata -l logfile start
    
    [cloudera@quickstart bin]$ pg_ctl -D /home/cloudera/pgdata/ start
    server starting
    [cloudera@quickstart bin]$ psql 
    psql: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
    [cloudera@quickstart bin]$ psql -U postgres
    psql: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
    

    我犯了什么错吗?请帮忙。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Laurenz Albe    6 年前

    正在使用的PostgreSQL二进制文件必须使用更改后的默认值 unix_socket_directories ,并且启动服务器的用户没有在其中写入的权限。

    要么编辑 /home/cloudera/pgdata/postgresql.conf 并设置

    unix_socket_directories = /tmp
    

    或者用

    pg_ctl -D /home/cloudera/pgdata/ -o '-k /tmp' start
    

    要连接,请使用

    psql -h /tmp -U postgres -d postgres