Troubleshooting
The service does not start
The installer's Checks block reports:
[FAIL] service 'innovative-postgresql' is registered and Running
- Start the service: on Windows run sc.exe start innovative-postgresql from an elevated PowerShell window; on Linux run sudo systemctl start innovative-postgresql.
- If it stops again, read the reason. On Windows open Event Viewer, Windows Logs, Application, and look for recent errors from the source PostgreSQL. On Linux run sudo journalctl -u innovative-postgresql -n 50.
- Correct the cause the log names. The usual ones are a setting typed by hand into postgresql.conf or pg_hba.conf in the data folder, another program now using the port (see A port is already in use below), and a full disk (see The disk or the data folder below).
- Run the innovative-postgresql installer again with -Repair (Linux --repair). It restarts the service, rewrites the connection file and runs the checks again.
A port is already in use
On a new interactive install the installer checks the port before it uses it. When another program is listening there, it names that program and its process ID and asks for another port. An unattended run stops with exit code 8 instead and changes nothing. The installer never moves or reconfigures the other program.
To see what holds the port on Windows, run netstat -ano | findstr :5432 and look up the process ID in Task Manager. On Linux run sudo ss -ltnp | grep 5432. Stop that program, or install innovative-postgresql on a free port. Products read the port from the connection file, so a port other than 5432 needs no product settings.
The superuser login fails
The Checks block reports:
[FAIL] superuser login (postgres) authenticates
The password given to the installer does not match the postgres password on the instance. Run the installer again and enter the correct password. When the installer was given no password, the line reads [WARN] ... was not checked (no password was given); the server is installed and running, and the check runs the next time an installer is given the password.
The superuser password is lost
The installer does not store the password, so it cannot be read back. Reset it on the database server:
- In the data folder, open pg_hba.conf in a text editor. On the host lines for database all at 127.0.0.1/32 and ::1/128, change scram-sha-256 to trust. Save the file.
- Restart the service (Restart-Service innovative-postgresql on Windows, sudo systemctl restart innovative-postgresql on Linux).
- Set a new password. On Windows run, from the install folder: .\bin\psql.exe -h 127.0.0.1 -p 5432 -U postgres -d postgres -c "ALTER ROLE postgres WITH PASSWORD 'new-password'"
- Change those lines in pg_hba.conf back to scram-sha-256, save, and restart the service again.
While the lines read trust, anyone signed in to the server can connect to every database without a password, so complete all four steps in one sitting.
A product cannot connect
Work through these in order:
- The service is running. Get-Service innovative-postgresql on Windows, systemctl status innovative-postgresql on Linux. If it is stopped, see The service does not start above.
- The product uses the right port. Open database.json in the connection file folder (C:\ProgramData\Innovative\innovative-postgresql on Windows, /etc/innovative/innovative-postgresql on Linux) and confirm the port matches the port the service listens on. When they differ, run the installer with -Repair (Linux --repair) to rewrite the file.
- The product runs on the same server. A new instance listens on this server only (localhost) and accepts connections from 127.0.0.1 and ::1. A product on another server cannot reach it unless that product's own installer set up remote access.
- The product's database exists. When the database server was installed without the superuser password, product databases were not created. Run the product installer again and give it the superuser password when asked.
- The product's own login is accepted. A product signs in with its own login, kept in the product's configuration. A password failure for that login is fixed from the product's installer.
The disk or the data folder
PostgreSQL stops accepting changes when the disk holding the data folder is full, and it can shut down. Free space on that disk, then start the service. Do not delete files from the data folder to make room: every file in it belongs to a database, and removing one damages that database.
The Checks line [FAIL] data directory <folder> exists and is non-empty means the data folder recorded for the instance is missing or empty, for example after the folder was moved or the disk was not mounted. Put the folder back, or reconnect the disk, and run the installer with -Repair (Linux --repair).
The line [FAIL] the install root <folder> holds no staging leftovers (.zip / .tmp) means an earlier extraction of the PostgreSQL programs stopped part-way. Delete the .zip and .tmp files it names from the install folder and run the installer again.
The installer cannot use the connection file folder
The installer checks that it can create, write and read back the connection file folder before it asks its first question, and stops with exit code 1 naming the path and the cause when it cannot. Run the installer from an elevated PowerShell window. If the folder's permissions were changed by hand, reset them from an elevated prompt:
Then run the installer again.
No internet access during a Windows install
The installer downloads the PostgreSQL 17 Windows binaries zip from get.enterprisedb.com. When the download fails, it names the file and its address and asks you to copy the file into the payload folder beside install.ps1, then press Enter. A file whose SHA-256 hash does not match is reported and never used; delete it and copy the correct file. An unattended run whose download fails stops with exit code 10.
Adopting an existing PostgreSQL service fails
When the installer cannot re-register another PostgreSQL service as innovative-postgresql, it registers the old service under its original name, starts it again and stops with exit code 9. The old instance and its data are unchanged. The run log names the step that failed.
The uninstaller refuses to remove the server
The uninstaller names the products still registered with innovative-postgresql. Uninstall those products first. When a product was removed without its uninstaller, answer y at Remove it anyway? [y/N]. An unattended run in this situation stops with exit code 3 and keeps the instance.
When the typed confirmation does not match innovative-postgresql exactly, the uninstaller stops with exit code 21 and removes nothing.
Installer exit codes
| Code | Meaning |
|---|---|
| 0 | Success, a clean stop, or nothing to do |
| 1 | The connection file folder cannot be created, written or read back. Nothing was changed |
| 2 | A required answer was declined, a question was needed and no console was available, or a product installer found no innovative-postgresql on the server. Install innovative-postgresql first |
| 8 | A program other than PostgreSQL is using the port. Nothing was changed |
| 9 | Adopting an existing PostgreSQL service failed and was rolled back. The previous service is running again |
| 10 | The PostgreSQL programs could not be obtained, or no usable port was given |
| 11 | Options that contradict each other (including -Verify with -Repair or -Database), or an unattended run that would have adopted another PostgreSQL service without consent |
| 12 | A check failed after the install, or a -Verify run found a failing check or no instance. The Checks block names the failing check |
| 13 | Not run with administrator rights |
| 14 | An upgrade was requested; upgrading through the installer is not available yet |
Uninstaller exit codes
| Code | Meaning |
|---|---|
| 0 | Success, or the instance was kept at your answer |
| 2 | A question was needed and no console was available |
| 3 | Products are still registered, and the instance was kept |
| 11 | Options that contradict each other |
| 13 | Not run with administrator rights |
| 20 | A check after the removal failed. The output names what is left |
| 21 | The typed confirmation did not match, and nothing was removed |
Where the logs are
| Log | Windows | Linux |
|---|---|---|
| Server start-up errors | Event Viewer, Windows Logs, Application, source PostgreSQL | sudo journalctl -u innovative-postgresql |
| Installer run logs | logs\install-<date>-<time>.log and logs\uninstall-<date>-<time>.log beside the installer | logs/ beside install.sh |
Every installer run prints the path of its run log when it finishes. Quote it when you contact support.