1.postgreSQL介绍:

   PostgreSQL是一个功能强大的开源对象关系数据库系统,它使用并扩展了SQL语言,并结合了许多安全存储和扩展最复杂数据工作负载的功能。

2.postgreSQL特点:

   免费,开源,高度可扩展性。数据完整性,并发性,可靠性,灾难恢复。安全。

3.postgreSQL安装:

   系统环境 ; Ubuntu16.04  LTS

   

   使用源码编译安装postgreSQL:

     下载postgreSQL:
     # wget --no-cookies --no-check-certificate  https://ftp.postgresql.org/pub/source/v9.5.14/postgresql-9.5.14.tar.gz
     
     创建安装的目录:
     # mkdir /data/{services,packages,untar} -p
     
     安装依赖包:
     # apt-get install -y libreadline6-dev  libxslt-dev zlib1g-dev systemtap-sdt-dev libxml2-dev
     
     解压软件包:
     # tar -zxvf postgresql-9.5.14.tar.gz -C /data/untar/
     # cd /data/untar/postgresql-9.5.14/
     # ./configure --prefix=/data/services/postgresql9 \ 
        --datarootdir=/data/services/postgresql9/postdata  \  
        --with-pgport=5432    --with-python  --with-libxml  \
        --with-libxslt --without-ldap --enable-thread-safety --enable-dtrace
     # make && make install   //编译并安装
     
     安装完成后的提示: PostgreSQL installation complete.

      设置postgresql共享库搜索路径:

    方法1: 定义LD_LIBRARY_PATH的变量。
        # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/services/postgresql9/lib

    方法2: 添加到共享库文件:
        # cat /etc/ld.so.conf.d/postgresql.conf 
        /data/services/postgresql9/lib

        #ldconfig   //立即生效

       库文件在链接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径。ldconfig命令的作用就是将 /etc/ld.so.conf.d/*.conf 列出的路径下的库文件缓存到 /etc/ld.so.cache 以供使用。

  linux系统添加共享库详解: https://blog.csdn.net/lu_embedded/article/details/56675653

  查看共享库:

   PostgreSQL安装和基本使用(一)_第1张图片 


  设置环境变量:

    # echo "export PATH=$PATH:/data/services/postgresql9/bin" >> /etc/profile      
    # source /etc/profile      //立即生效。


  创建postgres账户并设置密码:

    # useradd  -d  /data/services/postgresql9/ -M  postgres
    # echo -e  "123456\n123456" | passwd postgres
    更改属主和属组:
    # chown -R postgres.postgres /data/services/postgresql9/

 创建数据目录和初始化数据目录:

    # mkdir /data/services/postgresql9/data
    # su - postgres
    $ bin/initdb -D /data/services/postgresql9/data/

      PostgreSQL安装和基本使用(一)_第2张图片 

    修改配置文件:
       # grep -Ev '^[ ]*$|^#' /data/services/postgresql9/data/postgresql.conf
         data_directory = '/data/services/postgresql9/data'     #数据库安装路径,用于数据存储的目录
         hba_file = '/data/services/postgresql9/data/pg_hba.conf'    #基于主机的身份验证文件  
         ident_file = '/data/services/postgresql9/data/pg_ident.conf'   #用户名称映射的配置文件 
         external_pid_file = '/data/services/postgresql9/postgresql.pid'  #用于管理程序的额外进程pid文件
         listen_addresses = '*'        #指定服务器在哪些 TCP/IP 地址上监听客户端连接
         port = 5432                   #监听数据库的TCP端口
         max_connections = 100         #最大连接数。
         unix_socket_directories = '/tmp'   #监听来自客户端连接的unix域的套接字目录
         shared_buffers = 128MB	         #设置数据库服务器将使用的共享内存缓冲区量,默认值。
         dynamic_shared_memory_type = posix    #指定服务器使用shm_open分配的 POSIX 共享内存。
         log_line_prefix = '%t [%p-%l] %q%u@%d'    # 设置日志输出格式。 
         log_timezone = 'PRC'           #设置数据库日志文件在写日志文件时使用的时区   
         datestyle = 'iso, ymd'         #日期风格,年月日
         timezone = 'PRC'               #设置服务端和客户端时区。
         lc_messages = 'en_US.UTF-8'    #系统错误消息的语言。
         lc_monetary = 'zh_CN.UTF-8'    #设置货币值的显示格式的语言
         lc_numeric = 'zh_CN.UTF-8'     #设置用于格式化数字的语言。
         lc_time = 'zh_CN.UTF-8'        #设置用于格式化时间日期的语言。
         default_text_search_config = 'pg_catalog.english'    #选择文本搜索功能所使用的文本搜索配置。

     设置ubuntu16.04下系统的语言和编码设置:

    # apt-get install -y language-pack-zh-hant language-pack-zh-hans language-selector-gnome 
    # dpkg-reconfigure locales   选择zh_CN.UTF-8和en_US.UTF-8编码。
    
    编码配置文件: /var/lib/locales/supported.d/ 该文件下有三个文件: en  zh-hans  zh-hant
      #dpkg-reconfigure --force locales   强制更新,使设置生效。

              image.png

     启动服务:

      $ bin/pg_ctl -D /data/services/postgresql9/data/ -l logfile start
      或者:
      $ ./bin/postmaster -D /data/services/postgresql9/data > logfile 2>&1 &

 

2. 连接postgresSQL:

  $ ./bin/psql

     查看客户端字符编码:

           PostgreSQL安装和基本使用(一)_第3张图片

     查看服务端字符编码:

    PostgreSQL安装和基本使用(一)_第4张图片


 PostgreSQL的控制台命令:

  \h : 查看SQL命令解释。
  \? : 查看psql命令列表。
  \i sqlfile : 调用后缀为sql的文件并输出。
  \l : 列出所有数据库。
  \c [databasename] : 连接其他数据库。
  \d : 列出当前数据库的所有表.
  \d [tablename] : 列出表结构。
  \d+ [tablename] : 查看表基本情况。
  \du : 列出所有用户。
  \e : 打开文本编辑器。
  \conninfo : 列出当前数据库和连接的信息。