cmd after createdb command with postgresql - postgresql

I just installed ubuntu 14.04 and i'm trying to learn about creating databases using postgresql but i can't even create a simple testing table. I'm checking guides for about 3 hours now on how to start but with my little knowledge about ubuntu i don't understand much and thats why i try asking here. I will write the steps i follow because i'm not sure where the mistake is. I installed postgresql using the commands
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
After that i use
sudo -i -u postgres
to log in to the autocreated user account postgres and then
psql
to be able to interact with the db management system.
After that i write
createdb testingdb
in order to make the first step and then \l to check if it is created but the outcome of \l is a list of 3 databases (3 rows postgres template0 template 1) without the testingdb being there. Also at this point the cmd is frozen and looks likes this
the list of the 3 databases
(3 rows)
~
~
~
~
~
~
(END)
Any hint will be really helpfull.

I think you're mixing two separate ways of creating a database:
Method 1
psql #(Type this on the shell prompt)
CREATE DATABASE testingdb;
\c testingdb
CREATE TABLE tbl1(a INT);
\q
Method 2
createdb testingdb #(Again, type this on the shell prompt, not inside psql!)
psql testingdb
CREATE TABLE tbl1(a INT);
\q
The last bit about stuck prompt, is because you probably are inside the psql prompt, and to come back to the shell prompt, you need to type \q (or Control-d).

Related

Receiving 'ERROR: syntax error at or near "sudo"' when trying to create a user in postgres db

I'm trying to learn how to configure and setup a Postgres database, I am using WSL/Ubuntu. I am following along with this guide. I'm at the point where I am to create a user but I keep receiving a syntax error and I'm struggling to figure out how I can continue.
postgres=# sudo -u postgres createuser rncongi;
ERROR: syntax error at or near "sudo"
LINE 1: sudo -u postgres createuser rncongi;
Thank you for your help!
sudo is a Linux command, not a SQL command that you can run from within psql.
Additionally createuser is also a command line tool (that needs to run outside of `psql), not a SQL command
But as you are already logged into psql as the superuser, use the SQL command create user to create new user
postgres=# create user rncongi;

Creating a database dump doesn't seem to be working

I have PostgresQL 9.6.2 installed, and I'm trying to make a backup of one of my databases (my_database) using pg_dump command. It doesn't seem to be working as I see no output file.
I'm using a Mac and from my terminal (and in my project directory) I use:
psql postgres postgres
pg_dump my_database > my_database.bak
being postgres my database default user and password.
I've already tried using sudo psql postgres postgres with the same results.
I imagine that I'm experiencing some kind of lack of permissions but cannot understand it.
So, how to have the right permissions to do this?
Postgres comes with a bunch of stuff, including command-line tools. That includes the standard client, psql, and also the command pg_dump. That needs to be invoked from a shell command line.
If you type it into a psql command line, you'll get a syntax error once you terminate the line (with a ';') -- it's not valid sql, nor a valid command to psql.
Hope that helps!

How to check table value and export the database using PostgreSQL and Ubuntu

I need one help. I need to export one database from my postgreSQL which is running in my ubuntu server.
first i typed the below command
sudo -u postgres psql postgres
it gave me the following result.
I checked all database using below command
\list
It gave me the following result.
I needed to connect the 100salons_production database and i connected using the following command and checked the tables.
\connect 100salons_production
\dt
it gave the following result.
Now i tried to check the table values using this command select * from areas but it does not show any result.
Here I need to check the tables results.and also i need commands to export this database and import it in somewhere else. Please help me to resolve this issue.
If you only want to export the database, there is not need to connect to it using the psql tool. Instead, you have to use the pg_dump tool. You can do that like this:
sudo -u postgres pg_dump DATABASE_NAME > dump.sql
Then you should transfer dump.sql to the other computer and import it there.

PostgreSQL 9.4, 64-bit windows: Unable to create user from commandline

I'm trying to create a user from command line using PostgreSQL version 9.4 on a 64 bit machine with windows.
I'm using the below command to create a new user:
createuser -d temba
On executing the above command, it prompts me for a password.
I enter the password (qwerty) which i used while installing PostgreSQL. on doing so, i get the below error:
psql: FATAL: password authentication failed for user "my-windows-user-name"
Next, i tried giving my login password for windows, i get the same error as above.
Can anyone guide me through the procedure for creating a new user from command line (only, I'm not allowed to use PgAdmin to create user).
I have checked previous posts with similar errors. But the problem there is, either they are not using windows or they are using a really old version of PostgreSql.
Any information on how to proceed about with this shall be really helpful.
Thanks in advance.
All Postgres command line tools try to connect to the database using the current operating system user if no database user is specified.
So you need to specify the user name of the Postgres superuser that is used to connect to the Postgres server:
createuser -U postgres -d temba
This becomes more evident if you use psql instead. You specify the Postgres user account and the target database when you start it:
psql -U postgres -d temba
Then at the prompt you can run create user ....
temba=# create user foobar ... ;
Which is what the command line tool createuser is doing in the background.

How do I add PostGIS to PostgreSQL pgAdmin?

I've got PostgreSQL and pgAdmin installed, but I want to add a PostGIS server so I could work on a Geographic Informations System project.
I'm following this tutorial, which assumes PostGIS is set up. In the previous page of the tutorial, it instructs you to download their software package which includes PostgreSQL and pgAdmin. I already have those installed, so I would like to just add PostGIS but I don't see any way to do so.
Any ideas?
Connect to the database using a superuser account (most often the user named postgres but in more recent versions the id of the user who installed the application.) Then issue the following SQL commands to enable PostGIS functionality.
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
You can do this from within pgAdmin or via psql -U [superuser] [database] from a command line.
Alternately for the command adverse; as a superuser; from within pgAdmin right click on your database's Extensions and select New Extension. Then in the drop down associated with Name select the postgis* extensions needed.
Before adding PostGIS extension to Postgres. You first need to install PostGIS on Ubuntu 14.04
Add PPA from terminal
$ sudo add-apt-repository ppa:ubuntugis/ppa
$ sudo apt-get update
Install PostGIS with apt-get
$ sudo apt-get install postgis postgresql-10-postgis-2.5
After successful installation open psql
$ sudo -u postgres psql
List all databases
postgres=# \l
Connect to specific database
postgres=# \c DATABASE_NAME
Run the following to add PostGIS extension to Postgres
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
Exit from psql
postgres=# \q
Thank you
You don't install it to pgAdmin, it is an extension to Postgres itself. Once it is installed, you add it to a particular database, and its functions, nearly 1000, a few views and the spatial_ref_sys table, will appear in pgAdmin in that db. You can also install it to the template1 db, and then it will be automatically included in any other database that you subsequently create. You can get a binary install from http://postgis.net/install/
For PGAdmin installation of extensions:
Right click on the database name listed under the server cascade list, you will see an option "Create Script" - click on it.
This opens up a script with some information on creation/alteration of the DB. Clear this script and then paste the following lines:
CREATE EXTENSION postgis;
Look at the icons at the top - you will see a RUN icon/button - looks like a "play" icon. Click on it.
Look at the Log output, it should have successfully run the command and installed the extension.