Having difficulties implementing extension Citext in Postgres 10.1 on aws ec2 instance.
1- Tried "Create extension citext;"
--ERROR: could not open extension control file "/usr/local/pgsql/share/extension/citext.control": No such file or directory
SQL state: 58P01
2- Tried to install, postgresql-contrib.
--Not found
3- Installed postgresql96-contrib (older version), then tried to copy extension files (using ec2-user root account) from "usr/share/psql96/extenson" to "/usr/local/pgsql/share/extension".
-- Access denied
Linux newbie, any help would be appreciated.
Assuming you are using amazon ec2 instance running amazon linux ami, try installing the postgresql-contrib package on this instance,
sudo yum install postgresql-contrib
Now below command from psql prompt should work,
CREATE EXTENSION citext;
Related
Looking to install the pgstattuple extension on my Postgres 12 DB on RHEL 7 to see index fragmentation. Currently I only have one extension installed and that's the plpgsql extension.
Executing 'CREATE EXTENSION pgstattuple' results in the following error:
SQL Error [58P01]: ERROR: could not open extension control file "/usr/pgsql-12/share/extension/pgstattuple.control": No such file or directory
And I verified that the pgstattuple.control is not located in the /usr/pgsql-12/share/extension folder.
Searching around the net, seemed to indicate that the postgresql-contrib needed to be installed to get the pgstattuple extension. So I did the following command:
$ sudo yum install postgresql-contrib
Unfortunately the yum install postgresql-contrib resulted in the pgstattuple and other extensions being installed into the /usr/pgsql-9.6/share/extension
folder, and not in the /usr/pgsql-12/share/extension folder where I want them.
For giggles, I tried copying all the pgstattuple* files in /usr/pgsql-9.6/share/extension to /usr/pgsql-12/share/extension folder, and then tried calling CREATE extension pgstattuple, but that didn't work with another error.
Questions are:
Should I expect sudo yum install postgresql-contrib to actually install the pgstattuple extension for Postgres 12?? Or is there some other package name for Postgres 12?
Could this be some problem with my Red Hat Repository configuration?
In general what's the command to install the pgstattuple extension for Postgres 12 so that the pgstattuple files will end up in /usr/pgsql-12/share/extension folder??
Really appreciate any suggestions you have.
Thank you.
I´m trying to get PostGIS working, but it seems that Postgresql doesn´t find the extension. My server is running on CentOS 8, the Postgresql is version 12. I installed Postgresql 12 first via dnf module enable postgresql:12 etc..
Afterwards I installed PostGIS and followed the description on the PostGIS website (https://people.planetpostgresql.org/devrim/index.php?/archives/102-Installing-PostGIS-3.0-and-PostgreSQL-12-on-CentOS-8.html). But when I try to run CREATE EXTENSION postgis; I get the error ERROR: could not access file "$libdir/postgis-3": No such file or directory SQL state: 58P01 I figured out that the needed files reside in a subdirectory "bitcode". Therefore I tried to symlink the content in the $libdir directory above - but didn´t help. Even copying them in the directory didn´t - same error. What am I missing?
Thank you and best regards,
Goetz
You have a mix of packages installed: Some from the CentOS distribution, some from the PostgreSQL site. That will lead to trouble.
Uninstall the PostgreSQL packages that do not have PGDG in them and make sure to disable them as shown in the link you show. Then install the PGDG packages for PostGIS
I'm trying to deploy a PostGIS cluster using Postgres-XL on AWS, for this I have the next architecture:
SO: ubuntu
1 GTM (172.31.45.190)
1 Coordinator (172.31.45.191)
2 Datanodes (172.31.45.192 and 172.31.45.193)
I had my cluster running but I can't manage to make PostGIS work, I tried the installation with sudo apt-get install postgis but when I try to create the extension inside my db (CREATE EXTENSION postgis;) I got the next error:
ERROR: could not open extension control file "/usr/local/pgsql/share/extension/postgis.control": No such file or directory
The postgis.control file installed by apt-get is in: "/usr/share/postgresql/9.5/extension/postgis.control" so I think is just a problem with the paths but I'm a little lost on that configuration
Thank you in advance for any help!
In case anyone is running in this issue, I solved following this steps:
Install Postgres-xl and PostGIS dependencies to compile (Be sure to install the package postgresql-server-dev-9.5 in this step, otherwise it's going to brake your postgres-xl installation)
Build and install Postgres-XL with ./configure -prefix=/usr/lib/postgresql/9.5
Build and install PostGIS
Start your cluster
You're using a version of PostgreSQL (in this case PostgreSQL-XL) that was installed from somewhere other than the Ubuntu repositories (similar to this issue). The /usr/local/pgsql/share is the configured $SHAREDIR for your installation of PostgreSQL. The default on Ubuntu for PostgreSQL 9.5 should be /usr/share/postgresql/9.5. As far as I can tell $SHAREDIR is configured at compile time and can't easily be changed.
PostGIS gets compiled against the version of PostgreSQL it's going to be used against. So in this case the Ubuntu version of PostGIS isn't going to be compatible with the version of PostgreSQL-XL you're running.
You have two options for fixing the issue:
Install PostgreSQL from the Ubuntu software repository (make sure you back up your database first!) and use that instead of PostgreSQL-XL.
Install PostGIS manually into PostgreSQL-XL.
I am getting the following error when I run create extension postgis;
ERROR: could not open extension control file "/Library/PostgreSQL/9.6/share/postgresql/extension/postgis.control": No such file or directory
I am using Postgres 9.6.3 and PostGIS 2.3.2 installed using Homebrew on OS X El Capitan.
mdfind -name postgis.control shows:
/usr/local/Cellar/postgis/2.3.2/share/postgresql/extension/postgis.control
brew info postgis shows:
PostGIS extension modules installed to:
/usr/local/share/postgresql/extension
When I start the Postgres console I see:
psql (9.6.3, server 9.6.1)
I read a similar question, PostGIS Homebrew installation referencing an old path?, and tried to reload postgresql using the commands given in the top answer, but I am still seeing psql (9.6.3, server 9.6.1). Also, I believe my issue is different because it's looking for the extension control file in /Library and not /usr/local/Cellar.
Any help would be appreciated.
When you try to install postgis it install latest version of postgresql along with it as dependency.
So if you installed postgres#V (where V is user desired version )
brew install postgresql#V
later you run this command
brew install postgis
it will install postgres10.1 or whatever is latest.
So after that if run
create extension postgis;
In postgresql#V it will try to check its extension directory and it won't find postgis.control in extension directory as this postgis is installed in extension folder of postgresql version that is installed with that.
To solve this problem, you have to create a symlink from given installation of postgis to the desired postgresql#V
This example for postgresql#9.6
ln -s /usr/local/share/postgresql/extension/postgis* /usr/local/Cellar/postgresql#9.6/9.6.6/share/postgresql#9.6/extension/
ln -s /usr/local/lib/postgresql/postgis-2.3.so /usr/local/Cellar/postgresql#9.6/9.6.6/lib/postgis-2.3
ln -s /usr/local/lib/postgresql/rtpostgis-2.3.so /usr/local/Cellar/postgresql#9.6/9.6.6/lib/
before running these commands, please check postgresql version and file path in your system
Thanks this gist for help.
I had a similar problem with full details here. When the server is mentioned in your Postgres console, it means that you're referencing an older codebase. Stop that server and launch the correct server with the following commands.
$ brew services list
That will give you a list of database servers that are running.
$ brew services stop postgresql#<older-version>
$ brew services start postgresql
I need to add an extension called unaccent to my postgres database.
Postgres version PostgreSQL version: 9.3rc1
I have a problem to install the extension.
What i did:
sudo apt-get install postgresql-contrib-9.1
I know it's with 9.1 version, but on my test server i did everyting the same with postgres version 9.4, and everything works.
When i run a script on my production server
CREATE EXTENSION unaccent schema pg_catalog;
it throws me an error :
could not open extension control file "/usr/local/pgsql/share/extension/unaccent.control": Directory or file doesn't exist
What is the problem in this case? Extension has been installed into "wrong" (i guess) directory /usr/share/postgresql/9.1/extension instead of usr/local/pgsql/share/extension
Is there any chance to make postgres look into other directory than default for extensions?
Don't use PostgreSQL 9.3rc1. Just don't. That's not a production version.
You have to install the contrib modules from the same source and in the same version as PostgreSQL core. Everything else won't work.
So this is what you should do:
Upgrade PostgreSQL to something more recent, at leat 9.3.14.
Install the contrib modules from the same provider in the same version.