Difference between revisions of "PostgreSQL"
Jump to navigation
Jump to search
Rafahsolis (talk | contribs) |
Rafahsolis (talk | contribs) |
||
| Line 59: | Line 59: | ||
== Import .sql dump file == | == Import .sql dump file == | ||
psql databasename < data_base_dump | psql databasename < data_base_dump | ||
| + | |||
| + | == Error creating UTF-8 database == | ||
| + | 02:39:35: Error: ERROR: new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII) | ||
| + | SUGERENCIA: Use the same encoding as in the template database, or use template0 as template. | ||
| + | |||
| + | Fix: | ||
| + | <nowiki>update pg_database set datallowconn = TRUE where datname = 'template0'; | ||
| + | \c template0 | ||
| + | update pg_database set datistemplate = FALSE where datname = 'template1'; | ||
| + | drop database template1; | ||
| + | create database template1 with template = template0 encoding = 'UTF8'; | ||
| + | update pg_database set datistemplate = TRUE where datname = 'template1'; | ||
| + | \c template1 | ||
| + | update pg_database set datallowconn = FALSE where datname = 'template0';</nowiki> | ||
Revision as of 00:44, 3 September 2016
Install
Debian/Ubuntu
sudo apt-get update sudo apt-get install postgresql postgresql-contrib
Remote access
1.- Modify pg_hba.conf to add Client Authentication Record
To allow remote access edit: /etc/postgresql/9.4/main/pg_hba.conf
sudo -i -u postgres -H nano /etc/postgresql/9.4/main/pg_hba.conf
Example:
TYPE DATABASE USER CIDR-ADDRESS METHOD # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5
2.- Change the Listen Address in postgresql.conf
sudo -i -u postgres -H nano /etc/postgresql/9.4/main/postgresql.conf
set: listen_addresses = '*'
Crate users
From postgres shell account type:
createuser --interactive
To change the user password:
ALTER USER postgres WITH ENCRYPTED PASSWORD 'P@$$worD1';
Create database
From the postgres user shell:
createdb test1
CREATE TABLE / DROP TABLE
CREATE TABLE table_name (
column_name1 col_type (field_length) column_constraints,
column_name2 col_type (field_length),
column_name3 col_type (field_length)
);
DROP TABLE table_name;
List databases
\list or \l
List tables
\d \dt
ADD, QUERY, DELETE from table
Add
INSERT INTO table_name (column_name1, column_name2, column_name3, column_name4)
VALUES ('value1', 'value2', 'value3', 'value4');
Query
SELECT * FROM table_name;
Delete
DELETE FROM table_name WHERE column_name = 'value1';
Update
UPDATE table_name SET column_name1= 'value32' WHERE column_name2 = 'value2';
ALTER TABLE
ALTER TABLE table_name ADD column_name5 date; ALTER TABLE table_name DROP column_name5;
Import .sql dump file
psql databasename < data_base_dump
Error creating UTF-8 database
02:39:35: Error: ERROR: new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII) SUGERENCIA: Use the same encoding as in the template database, or use template0 as template.
Fix:
update pg_database set datallowconn = TRUE where datname = 'template0'; \c template0 update pg_database set datistemplate = FALSE where datname = 'template1'; drop database template1; create database template1 with template = template0 encoding = 'UTF8'; update pg_database set datistemplate = TRUE where datname = 'template1'; \c template1 update pg_database set datallowconn = FALSE where datname = 'template0';