ubuntu postgresql配置

安装postgresql

正常情况下可以通过命令直接安装postgresql

sudo apt-get install postgresql-9.*

unbutu 14.04版本默认的是postgresql-9.3,如果自己本地数据库中存在postgresql事物等新关键字需要在ubuntu14.04上安装其他版本可以通过以下方法:

  • 添加postgresql repository
sudo add-apt-repository "deb https://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main"
  • 更新并安装postgresql-9.6
sudo apt-get update
sudo apt-get install postgresql-9.6

注意:
如果本地已经安装了postgresql其他版本,如果再安装postgresql-9.6,其默认端口会修改(非5432),这个特别需要注意,否则其他配置完成可能因为端口问题导致连接不上

添加新用户和数据库

  • 创建系统新用户
sudo adduser dbuser
  • 切换到postgre用户
sudo su - postgres
  • 使用psql命令登录PostgreSQL控制台
psql
  • 修改、设置postgres密码
\password postgres

按照提示输入密码,此密码是连接必须的,需要记住

  • 创建数据库用户dbuser(刚才创建的是Linux系统用户),并设置密码
create user dbuser with password 'password';
  • 创建数据库并指定所有者
create database testdb owner dbuser;
  • 给testdb数据库的所有权限都赋予dbuser,否则dbuser只能登录控制台,没有任何数据库操作权限。
grant all privileges on database testdb to dbuser;
  • 数据库删除
drop database testdb
  • 控制台命令
    • \h:查看SQL命令的解释,比如\h select。
    • ?:查看psql命令列表。
    • \l:列出所有数据库。
    • \c [database_name]:连接其他数据库。
    • \d:列出当前数据库的所有表格。
    • \d [table_name]:列出某一张表格的结构。
    • \du:列出所有用户。
    • \e:打开文本编辑器。
    • \conninfo:列出当前数据库和连接的信息。
  • 退出
    使用\q命令退出控制台(也可以直接按ctrl+D)

数据库操作

# 创建新表 
CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);

# 插入数据 
INSERT INTO user_tbl(name, signup_date) VALUES('张三', '2013-12-22');

# 选择记录 
SELECT * FROM user_tbl;

# 更新数据 
UPDATE user_tbl set name = '李四' WHERE name = '张三';

# 删除记录 
DELETE FROM user_tbl WHERE name = '李四' ;

# 添加栏位 
ALTER TABLE user_tbl ADD email VARCHAR(40);

# 更新结构 
ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;

# 更名栏位 
ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;

# 删除栏位 
ALTER TABLE user_tbl DROP COLUMN email;

# 表格更名 
ALTER TABLE user_tbl RENAME TO backup_tbl;

# 删除表格 
DROP TABLE IF EXISTS backup_tbl;

数据库远程访问设置

  • 修改postgresql.conf
    postgresql.conf存放位置在/etc/postgresql/9.x/main下,这里的x取决于你安装PostgreSQL的版本号,编辑或添加下面一行,使PostgreSQL可以接受来自任意IP的连接请求。
listen_addresses = '*'      # what IP address(es) to listen on;
                    # comma-separated list of addresses;
                    # defaults to 'localhost'; use '*' for all

另外如果需要可以设置默认访问端口

port = 5432             # (change requires restart)
  • 修改pg_hba.conf
    pg_hba.conf,位置与postgresql.conf相同,虽然上面配置允许任意地址连接PostgreSQL,但是这在pg中还不够,我们还需在pg_hba.conf中配置服务端允许的认证方式。任意编辑器打开该文件,编辑或添加下面一行。
# TYPE  DATABASE  USER  CIDR-ADDRESS  METHOD
host  all  all 0.0.0.0/0 md5

默认pg只允许本机通过密码认证登录,修改为上面内容后即可以对任意IP访问进行密码验证。对照上面的注释可以很容易搞明白每列的含义,具体的支持项可以查阅文末参考引用。

  • 重启service
    完成上两项配置后执行sudo service postgresql restart重启PostgreSQL服务后,允许外网访问的配置就算生效了。
    原文作者:rill_
    原文地址: https://www.jianshu.com/p/daa6f3a0f947
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞