Read #Enable data checksumming for more information. If your data directory resides on a file system without data checksumming, you may wish to enable PostgreSQL's built-in checksumming for increased integrity guarantees - add the -data-checksums argument to do so.Hope this helps methodically troubleshoot this issue.Note: Using a locale other than C.UTF-8, C, POSIX or ucs_basic can result in a collation version mismatch that will require reindexing if the library providing the locale ( glibc or icu) gets updated. If the postgres server is not started, please try restarting the postgres instance with the command as appropriate to the operating system you are using.įor Mac OS the command to restart was brew services restart postgresql The process is not running at all or there is some other issue, which can again be seen in the log (which can be found with the steps above). Once you get the port, which was 5488 in my case, connect to postgres server with an option "-p" to connect (replace with the port found from the log): psql -p 5488 #add host and other options as neededī. So, you can grep that as well like: egrep "*listening*" /usr/local/var/log/postgres.log Open the log file and confirm the port number from the log line like below: There are other articles on how to check the statusįind the log location with the pid (5833 is the pid of postgres from the above command, replace the pid with your pid from the command output you get): $ lsof -p 5833 | grep log You can confirm postgres server status with pg_ctl or other commands to confirm. If you DO NOT get the output like above, most likely the postgres server is not running. Got the pid of 5833 from the output below: UID PID PPID C STIME TTY TIME CMDĥ01 5833 1 0 12:07PM ? 0:00.13 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres Maybe the port is not the default port used (which is 5432)- How to confirm this? ps -ef | grep UID & ps -ef | grep postgres This issue might occur for one of the reasons below:Ī. The solution is as simple as reinstalling the gem. When you install the ‘pg’ gem, it detects which version of Postgres is installed and sets the domain socket path appropriately. The fix is simple, if a little suprising. At no point had I told Rails to connect to postgres on that path, Rails had assumed it, and now its assumptions were wrong. I could’ve messed around with the config and made Postgres use the domain socket it was previously, or told Rails explictly how to connect, but both of those approaches seemed like work I shouldn’t have to do. The problem was that the new version of Postgres listens on /tmp/.s.PGSQL.5432 instead. Is the server running locally and acceptingĬonnections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"? Even though Postgres was definitely running, suddenly I was getting:Ĭould not connect to server: No such file or directory (PG::ConnectionBad) However, trouble struck once I tried to run any specs that needed to connect to Postgres. The process was smooth and pg_upgrade is a very handy tool. I recently upgraded Postgres from 9.2 to 9.3 using brew upgrade postgres. I was looking for a long time, and this was the most clean and neat solution:
0 Comments
Leave a Reply. |