美文网首页
ubuntu postgresql配置

ubuntu postgresql配置

作者: rill_ | 来源:发表于2018-01-05 16:40 被阅读0次

    安装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服务后,允许外网访问的配置就算生效了。

    相关文章

      网友评论

          本文标题:ubuntu postgresql配置

          本文链接:https://www.haomeiwen.com/subject/kcjsnxtx.html