#读者注意:本文可以选择不看解释,直接执行每段的0中的代码

(〇):一些概念(可以跳过直接使用(一)0的代码)

1. 客户端:psql。postgreSQL的命令行客户端程序,在终端输入psql进入postgreSQL数据库

2. 账户:与我们常用的mysql不同,使用postgresSQL数据库无须选择数据库账户,在类unix系统下,postgreSQL直接使用你的当前系统账户作为数据库账户。

默认的,在创建伊始,postgres生成一个名为postgres的数据库和一个名为postgres的数据库超级用户,同时还生成了一个名为postgres的Linux系统用户,我们可以通过cat /etc/passwd 命令看到它。

如果要想像mysql一样,使用另外的数据库账户,则需要另行修改。

(一) : 基本配置

0. 代码(不愿意看详情的可以照着敲)

  1. sudo apt install postgresql
  2. /etc/init.d/postgresql status
  3. /etc/init.d/postgresql start
  4. sudo passwd postgres
  5. su - postgres
  6. psql​
  7. ALTER USER postgres WITH PASSWORD 'abcdefg';

1. 安装:sudo apt install postgresql

2. 查看postgresql服务状况(默认是运行的,此步可以跳过)

(1)查看:/etc/init.d/postgresql status

(2)停止:/etc/init.d/postgresql stop

(3)开始:/etc/init.d/postgresql start

3. postgresql将为系统创建的账户:postgres

3.(1): 建议更改linux的账户的postgres账户的密码:sudo passwd postgres

4. 进入postgre账户:su - postgres

5. 登录数据库:psql

5.(1) 修改postgreSQL的postgres账户的密码为“abcdefg”:ALTER USER postgres WITHPASSWORD encrypted 'abcdefg';

(二):进阶:新建一个账户

以下假设你有一个linux用户"Bob",你要为他建立一个叫“Bob”的密码为“abcdefg”的账户

0. 代码:

  1. create user Bob with password 'abcdefg';
  2. create database Bob owner Bob;
  3. grant all privileges on database Bob to Bob;​

0.1. 其实通过第一步,你的数据库就可以使用了,而且如果你更改了postgreSQL为你创建的postgre账户的密码,就是是很安全了。

然而,我们也可以选择使用自己的数据库账户。

(1)postgre的权限太大,你需要一个更安全的账户。

(1)你的当前系统账户是Bob,你想直接使用Bob这一身份进入数据库而不是切换至postgre。

(2)或者说你的程序调用不方便用postgre账户,需要新建一个数据库账户。

1. 创建一个叫“Bob”的密码为“abcdefg”的账户: create user Bob with password 'abcdefg';

2. 创建属于Bob的数据库(不可省略,必须为同名数据库,不可更改数据库名称为其它):

create database Bob owner Bob;

3.  赋权:grant all privileges on database Bob to Bob;​

4. 注意:

(1)通常从linux用户名同名数据库账户使用该账户,不需要输入数据库密码,你的数据库密码通常是用来第三方程序连接的,比方说数据库可视化软件DBevar,比方说远程连接,比方说就你自己的脚本。

(三)开启本地账户登录模式:

0. 代码:

  1. sudo vim /etc/postgresql/*/main/pg_hba.conf
  2. 将local all postgres peer改为local all postgres md5,wq退出
  3. sudo /etc/init.d/postgresql reload
  4. psql -U postgres

1. 修改postgresql配置的本地机器权限,使所有用户都可以交叉进入

sudo vim /etc/postgresql/*/main/pg_hba.conf
    将local all postgres peer改为local all postgres md5,wq退出

(如果改成trust,则不需要输入密码,但不建议这么做)

2. 重载配置:sudo /etc/init.d/postgresql reload

3. 加参数 -U设置进入仓库的用户(此处进入的是postgres):psql -U postgres, 然后输入密码。

(四)允许远程登录:

0. 代码:

  1. sudo vim /etc/postgresql/*/main/postgresql.conf
  2. 搜索文件中listen_addresses,讲注释去掉,值改为*,wq退出
  3. sudo vim /etc/postgresql/*/main/pg_hba.conf
  4. 在最下面添加一行:host   all    all    0.0.0.0/0    md5, wq退出
  5. sudo /etc/init.d/postgresql reload

1. 修改两个配置文件:

(1)postgresql.conf: sudo vim /etc/postgresql/*/main/postgresql.conf,

搜索文件中listen_addresses,讲注释去掉,值改为*,wq退出

(2)pg_hba.conf: sudo vim /etc/postgresql/*/main/pg_hba.conf

在最下面添加一行:host   all    all    0.0.0.0/0    md5, wq退出

(3)重载配置 :sudo /etc/init.d/postgresql reload

(五)常用指令:

1. 登录指令:

(1)-U指定用户

(2)-d指定数据库,

(3)-h指定服务器,

(4)-p指定端口。

可以这样用:

完整的登录指令:psql -U dbuser -d somedb -h 127.0.0.1 -p 5432

登录linux系统用户名的同名账户的某个仓库:psql somedb

登录linux系统用户名的同名账户的同名仓库:psql

2. 控制台命令:

如果你过去是mysql用户,你会遗憾地发现mysql的一些如同show databases; show tables;use somedatabase 等指令在postgreSQL是行不通的。

  • \h:查看SQL命令的解释,比如\h select。
  • \?:查看psql命令列表。
  • \l:列出所有数据库。
  • \c [database_name]:连接其他数据库。
  • \d:列出当前数据库的所有表格。
  • \d [table_name]:列出某一张表格的结构。
  • \du:列出所有用户。
  • \e:打开文本编辑器。
  • \conninfo:列出当前数据库和连接的信息。

3。 数据库命令:

几乎所有的sql命令都是通用的,大家自行查找使用。

linux debian 9 配置postgresSQL数据库的更多相关文章

  1. Kali Linux 下安装配置MongoDB数据库 ubuntu 下安装配置MongoDB源码安装数据库

    Kali Linux 下安装配置MongoDB数据库   1.下载mongodb.tgz 压缩包: 2.解压到:tar -zxvf mongodb.tgz /usr/local/mongodb 3.创 ...

  2. linux debian 9 / centos 7配置postgresSQL数据库

    #读者注意:本文可以选择不看解释,直接执行每段的0中的代码 (〇):一些概念(可以跳过直接使用(一)0的代码) 1. 客户端:psql.postgreSQL的命令行客户端程序,在终端输入psql进入p ...

  3. Linux下安装配置MongoDB数据库

    说明: 操作系统:CentOS 5.X 64位 IP地址:192.168.21.130 实现目的: 安装配置MongoDB数据库 具体操作: 一.关闭SElinux.配置防火墙 1.vi /etc/s ...

  4. 虚拟机中ubuntu-16.04 Linux系统下配置mysql数据库,并在windows下使用navicat远程连接

    Linux系统下mysql数据库安装配置步骤: 1.在服务器上安装mysql:sudo apt-get install mysql-server sudo apt-get install mysql- ...

  5. linux下安装 配置 redis数据库

    通过终端命令安装(推荐): 1 确保更新源服务器能正常使用 如果没有更换更新源服务器,那么可能一直都下不了软件.欢迎参考我之前的博文来更换成国内的镜像服务器http://www.cnblogs.com ...

  6. Linux CentOS安装配置MySQL数据库

    没什么好说的,直接正面刚吧. 安装mysql数据库 a)下载mysql源安装包:wget http://dev.mysql.com/get/mysql57-community-release-el7- ...

  7. 【转载】CentOS6.5_X64下安装配置MongoDB数据库

    [转载]CentOS6.5_X64下安装配置MongoDB数据库 2014-05-16 10:07:09|  分类: 默认分类|举报|字号 订阅      下载LOFTER客户端 本文转载自zhm&l ...

  8. Linux下oracle11gR2系统安装到数据库建立配置及最后oracle的dmp文件导入一站式操作记录

    简介 之前也在linux下安装过oralce,可每次都是迷迷糊糊的,因为大脑一片空白,网上随便看见一个文档就直接复制,最后搞了乱七八糟,虽然装上了,却乱得很,现在记录下来,希望能给其他网上朋友遇到问题 ...

  9. Linux下安装配置MongoDB 3.0.x 版本数据库

    说明: 操作系统:CentOS 5.X 64位 IP地址:192.168.21.128 实现目的: 安装配置MongoDB数据库 具体操作: 一.关闭SElinux.配置防火墙 1.vi /etc/s ...

随机推荐

  1. C和C++混合编程之 extern “C”的使用

    C和C++混合编程之 extern "C"的使用 首先要明白: C++号称是C语言的超集,也确实,从语言的基本语法上,C++是包含所有C语言的语法的,而且C++为了兼容C,连C语言 ...

  2. selenium 对https网站(加密证书)进行自动化测试

    由于公司需要,被测网站有证书加密,由于在selenium启动firefox的时候,它会重新建一个profile作为启动的profile,所以无论你怎么把站点设为可信任站点,在selenium启动的fi ...

  3. snowflake主键生成策略

    1.snowflake简介 在分布式系统中,我们需要各种各样的ID,既然是ID那么必然是要保证全局唯一,除此之外,不同当业务还需要不同的特性,比如像并发巨大的业务要求ID生成效率高,吞吐大:比如某些银 ...

  4. sed修炼系列(三):sed高级应用之实现窗口滑动技术

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  5. [C]成员运算符"."和间接成员运算符"->"浅析

    成员运算符: . 成员运算符一般和结构或者联合名一起使用,指定结构或者联合中的某个成员. 举个栗子: 如果Ronz是一个结构的名称,linux是这个结构模板指定的一个成员名. struct{ //匿名 ...

  6. Maven setting.xml 文件剖析

    全局配置: ${M2_HOME}/conf/settings.xml (配置环境变量  新建 M2_HOME    安装目录到版本名那里(D:\apache-maven-3.0.2) 编辑path 环 ...

  7. pip 警告!The default format will switch to columns in the future

    pip警告! DEPRECATION: The default format will switch to columns in the future. You can use --format=(l ...

  8. [UWP]理解及扩展Expander

    ##1. 前言 最近在自定义Expander的样式,顺便看了看它的源码. Expander控件是一个ContentControl,它通过IsExpanded属性或者通过点击Header中的Toggle ...

  9. Java之String、StringBuffer、StringBuilder

    String.StringBuffer和StringBuilder的理解 这三个类学过已经有一段时间了,想通过这篇文章再将其复习一下,以求温故知新. 首先说一下三者各自的特性 String: Stri ...

  10. Apache配置虚拟域名

    在作php本地调试的时候,一般都要打上localhost/,如果你的项目层级关系比较多,那你的url地址就会很长. 那我们能不能用一个简短的域名去替代那些一长串无用的字符呢? 那可能有人会问如果我没有 ...