zoukankan      html  css  js  c++  java
  • linux debian 9 / centos 7配置postgresSQL数据库

    #读者注意:本文可以选择不看解释,直接执行每段的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,比方说远程连接,比方说就你自己的脚本。

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

    ####################################

    ####注意:centos 需要切换到root用户######

    ## centos的配置目录为/var/lib/pgsql/data ##

    ####################################

    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命令都是通用的,大家自行查找使用。

  • 相关阅读:
    动网16位gb2312md5加密
    开发windows7侧边栏小工具
    MVC文档地址
    关闭FCNs(文件修改监控)
    内存管理
    android笔记一(Button)
    android笔记五ImageButton
    android笔记三FrameLayout
    linux内核各组件的功能介绍
    C++面试题
  • 原文地址:https://www.cnblogs.com/chenyansu/p/7620363.html
Copyright © 2011-2022 走看看