Homebrew postgres broken

前端 未结 8 1700
野趣味
野趣味 2020-12-07 08:49

I installed Postgresql 9.4.0 installed on my Mac (10.10.1/Yosemite) using homebrew. It does not work.

I have created the softlink to /usr/local/opt/postgresql/homebr

相关标签:
8条回答
  • 2020-12-07 09:29

    I had this same problem. The primary issue here is that the initdb step of installation will create the directory with root ownership instead of as the user on a Mac. To solve this issue:

    Create the data directory before running initdb and set permissions of 0700

    rm -rf /usr/local/var/postgres  # in case this is not your first try
    mkdir /usr/local/var/postgres
    chmod 0700 /usr/local/var/postgres
    

    Then run initdb and it will respect the permissions of the data directory.

    initdb -D /usr/local/var/postgres
    

    For grins and giggles, create a test db named after your user:

    createdb `whoami`
    

    Login to test:

    psql
    
    0 讨论(0)
  • 2020-12-07 09:30

    Check @leo_chaz_maltrait for fixing errors the error Could not symlink share/man/man3/SPI_connect.3 Another error that might show up is:

    Error: Could not symlink lib/pkgconfig/libecpg.pc

    sudo chown -R `whoami` /usr/local/lib/pkgconfig
    
    brew link postgresql
    
    0 讨论(0)
  • 2020-12-07 09:32

    After trying to install postgresql with Homebrew, I got this:

    Warning: postgresql-9.5.2 already installed, it's just not linked
    

    So I tried:

    brew link postgresql
    

    And got this error:

    Linking /usr/local/Cellar/postgresql/9.5.2... 
    Error: Could not symlink share/man/man3/SPI_connect.3
    /usr/local/share/man/man3 is not writable.
    

    It seemed to be a write permission matter, so I did:

    sudo chown -R `whoami` /usr/local/share/man/
    

    It did the trick because, then I was able to do (without error):

    brew link postgresql
    
    0 讨论(0)
  • 2020-12-07 09:34

    I had the same problem installing postgres using homebrew on a freshly installed Yosemite.

    First off my brew config looks like this:

    HOMEBREW_VERSION: 0.9.5
    ORIGIN: https://github.com/Homebrew/homebrew
    HEAD: 9f6926265f8e4be7cc80dfe9042f2cd3c1e8dc9e
    Last commit: 64 minutes ago
    HOMEBREW_PREFIX: /usr/local
    HOMEBREW_CELLAR: /usr/local/Cellar
    CPU: quad-core 64-bit sandybridge
    OS X: 10.10.1-x86_64
    Xcode: 6.1.1
    Clang: 6.0 build 600
    X11: N/A
    System Ruby: 2.0.0-481
    Perl: /usr/bin/perl
    Python: /usr/bin/python
    Ruby: ~/.rvm/rubies/ruby-2.1.1/bin/ruby
    

    First thing i noticed was that I had no write permission to /usr/local/var/postgres. This was easily changed issuing sudo chown -R `whoami` /usr/local/var/postgres then I reinstalled postgresql and did

    cat /usr/local/var/postgres/server.log

    which revealed:

    postgres cannot access the server configuration file "/usr/local/var/postgres/postgresql.conf": No such file or directory

    So I removed the directory /usr/local/var/postgres and issued the command to initialize the database.

    initdb -D /usr/local/var/postgres/

    This seemed to have done the trick and postgres is running fine.

    0 讨论(0)
  • 2020-12-07 09:45

    In case anyone upgraded from a previous version, dont forget to:

    brew postgresql-upgrade-database
    

    That will solve the problem by upgrading your existing databases to the version you upgraded postgres to.

    0 讨论(0)
  • 2020-12-07 09:47

    Please note that their is a thread on Homebrew's github dealing with this issue: https://github.com/Homebrew/homebrew/issues/35240


    I have had a similar issue. James answer helped me solve it. But I then ran into the issue jbk is mentioning (after having deleted /usr/local/var/postgres, it kept on being recreated).

    The issue is that if you have created the symlink:

    ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
    

    and launched the process:

    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
    

    you should first unload it:

    launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
    

    before running James's commands.

    rm -rf /usr/local/var/postgres  # in case this is not your first try
    mkdir /usr/local/var/postgres
    chmod 0700 /usr/local/var/postgres
    

    In addition, if, like me, you have an admin user managing homebrew and a regular user who will be using pgsl for development purpose, James command should be run as super user:

    sudo -s
    

    and ownership over the postgres directory should be given to your dev user:

    chown my-dev-user /usr/local/var/postgres
    

    The following command, run as the dev user, should then properly populate the directory:

    createdb `whoami`
    

    Running:

    psql -l
    

    should show you the tables and user permissions in postgre after such manipulations.

    Hope this helps.

    0 讨论(0)
提交回复
热议问题