Linux安装postgresql

  PostgreSQL是加州大学伯克利分校计算机系开发的对象关系型数据库管理系统,目前拥有活跃的开源社区贡献,最近排名也不断前进,pgsql中其实有不少有点和设计理念都要比mysql更好一些,好比稳定性比较强;高并发读写状况下性能依然较好;支持丰富的几何类型而且在GIS领域地位领先;text支持各类长度,无需区分;nosql特性,支持array和json存储和搜索等,由于这些优势,pgsql应用场景也不断扩展,下面详细写一下pgsql入门的第一步,即先将pgsql安装至操做系统,过程以下:mysql

  1. 下载软件包linux

  pgsql有不少类型的包,对于不一样linux发行版都有对应的编译好的包,安装很方便,另外若是对于通用的linux平台能够编译源码安装或者安装官方编译好的二进制包,源码包的安装仅仅比二进制安装多出一个编译步骤,其他的都同样,因此这里使用安装方式是安装编译好的二进制包sql

  pgsql官网地址:https://www.postgresql.org/,进入后点击download就来到下载页,这里点击Linux下面的Other Linux选项,而后点击下方的tar.gz archive下载二进制归档,数据库

  

  而后就来到最终的pgsql下载页了,地址为:https://www.enterprisedb.com/download-postgresql-binaries,以下图下载最新版本的10.1json

  

  如上图根据机器的位数下载对应的包,我这里下载的是x86-64的包,为:postgresql-10.1-1-linux-x64-binaries.tar.gz,下载以后准备安装bash

  2. 安装并初始化服务器

  解压数据库并放到指定目录:并发

tar -xvzf postgresql-10.1-1-linux-x64-binaries.tar.gz
# 解压出来以后目录为pgsql
mv pgsql/ /monchickey/

  如今pgsql的安装目录就是/monchickey/pgsqlnosql

  建立pgsql用户并设置密码:高并发

useradd postgres
passwd postgres
# 两次输入密码并确认

  注意:这里设置密码是linux用户postgres的登陆密码,不是pgsql服务器的密码

  建立pgsql数据目录: mkdir /monchickey/pgsql_data 

  给postgres用户受权目录访问权限: chown postgres /monchickey/pgsql_data/ 

  而后切换到postgres用户来操做数据库,pgsql数据库就以postgres为默认用户,执行: su - postgres 切换

  切换以后建议修改~/.bash_profile将pgsql的bin目录加至环境变量中,方便直接使用pgsql相关命令,下面初始化数据库:

/monchickey/pgsql/bin/initdb -D /monchickey/pgsql_data/

  等待执行完毕,没什么问题就初始化成功了,提示以下:

  

  如图根据提示能够启动数据库: /monchickey/pgsql/bin/pg_ctl -D /monchickey/pgsql_data/ -l logfile start 这里-l指定日志文件位置,这里直接输出在家目录下的logfile中,这个能够本身指定,这里-D指定数据目录,默认若是不加数据目录直接报错找不到,能够刚才说的环境变量配置文件中~/.bash_profile加入一行: export PGDATA=/monchickey/pgsql_data 而后source进去便可,这样pgsql会自动去找PGDATA环境变量值,找不到才会报错

  启动以后此时执行: ps -ef | grep postgres 就能够看到相关进程以下:

  

  pgsql默认的端口号为5432,经过netstat命令或者lsof命令均可以看到监听状况:

  

  如今能够看到pgsql默认监听的是localhost或127.0.0.1,目前只能本机访问,若是远程访问就链接不上了,具体的配置文件是data目录下的postgresql.conf,能够经过修改这个配置文件来调整各个参数,好比:listen_addresses能够修改绑定的地址,默认是localhost,port能够修改监听的端口号,默认是5432,max_connections能够修改最大客户端链接数量,默认是100等等,这里就再也不详细说了

  中止postgresql的命令为: /monchickey/pgsql/bin/pg_ctl -D /monchickey/pgsql_data/ stop 

  3. 命令行界面简单操做

  pgsql和mysql同样能够经过交互式提示符链接操做,链接方式以下:

./bin/psql -h 127.0.0.1 -d postgres -U postgres -p 5432

  其中-h参数指定服务器地址,默认为127.0.0.1,默认不指定便可,-d指定链接以后选中的数据库,默认也是postgres,-U指定用户,默认是当前用户,-p 指定端口号,默认是"5432",其它更多的参数选项能够执行: ./bin/psql --help 查看

  登陆进去默认界面以下所示:

  

  命令提示符前面的就是当前的数据库,使用 \l 查看当前的数据库列表

  

  默认postgres,template0和1这3个库是不容许操做的,建立新的数据库执行: CREATE DATABASE test WITH OWNER=postgres ENCODING='UTF-8'; 这样就建立好了数据库test,而后能够执行命令 \c test 切换当前数据库为test,而后执行 \d 能够查看当前数据库下的全部表:

  

  建立一个简单的数据表能够执行下面的命令:

CREATE TABLE student (
  id integer NOT NULL,
  name character(32),
  number char(5),
  CONSTRAINT student_pkey PRIMARY KEY (id)
);

  

  建立表以后可使用 \d student; 查看表的详细信息,以下:

  

  如今能够插入一条测试数据: INSERT INTO student (id, name, number) VALUES (1, '张三', '1023'); 

  而后能够查询这条数据: SELECT * FROM student WHERE id=1; 

  

  最后能够执行 \q 退出交互式界面

  上面是一些最基本的操做,能够看出除了一些属性类的操做外,通用的sql语句和mysql几乎彻底同样,只是数据类型表达有所不一样;对于pgsql的安装和简单的使用就先说这些,另外pgsql还支持更多复杂的查询的操做,这个后续若是有涉及会继续分享;感谢查看,欢迎补充.^_^.