天天看点

Postgresql 安装使用

一. windows安装

1.windows下面直接下载postgresql-10.3-3-windows-x64.exe 安装包,包比起以前的9版本的要打一倍多,里面主要是集成了pgAdmin安装包;

2.安装好后可以在程序中里面找到SQL Shell (psql)这个脚本运行,默认的数据库用户名:postgres,为超级用户,密码在安装的时候已经设置。进入提示符后,# 符合代表的是超级用户;

或者运行cmd,进入bin 目录下:运行 psql.exe -h localhost -p 5432 database_name dbusername 来链接数据库

添加新用户和新数据库;

初次安装后,默认生成一个名为postgres

的数据库和一个名为postgres的数据库用户,如果是类unix 系统,则还会生出一个postgres

系统用户;

1.创建用户:

CREATE USER dbuser WITH PASSWORD 'password'

2.创建用户数据库:

CREATE DATABASE exampledb OWNER dbuser;

3.将exampledb数据库的所有权都赋予dbuser,否则dbuser只能登陆控制台,没有如何操作数据库的权限,但在windows下面我测试不需要这一步;

GRANT ALL PRIVILEGES ON DATABASE exampledb to dbuser

退出操作\q

二.FreeBSD 安装

# pkg search postgresql

# pkg install postgresql10-server-10.3_1 会把postgresql10-client-10.3一起安装

# vi /etc/rc.conf #加入 postgresql_enable =“YES”

# service postgresql initdb # 初始化数据库

# initdb创建一个新的postgresql数据库集群,它是由单个服务器实例管理的数据库集合。

# service postgresql start # 启动PostgreSQL数据库服务器

1.启用远程连接和密码验证

vi /var/db/postgres/data96/postgresql.conf

向下滚动以找到如下所示的线。 取消注释listen_addresses并将其值从localhost更改为* 。 您也可以将默认端口从5432更改为所需的任何其他值。

#------------------------------------------------------------------------------

# CONNECTIONS AND AUTHENTICATION

#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*' # what IP address(es) to listen on;

# comma-separated list of addresses;

# defaults to 'localhost'; use '*' for all

# (change requires restart)

#port = 5432 # (change requires restart)

max_connections = 100 # (change requires restart)

#superuser_reserved_connections = 3 # (change requires restart)

#unix_socket_directories = '/tmp' # comma-separated list of directories

默认情况下,PostgreSQL允许每个人连接到psql shell,而不会验证已经以PostgreSQL用户身份登录的用户。 当数据库可以公开访问时,您需要将身份验证方法更改为更安全的方法。 您可以使用使用加密密码进行身份验证的md5身份验证方法。 此外,您还可以指定允许身份验证的IP地址。

使用您喜欢的文本编辑器打开pg_hba.conf文件。

vi /var/db/postgres/data96/pg_hba.conf

将身份验证方法从trust更改为md5以进行主机类型连接。 此外,添加要访问数据库的客户机的地址。 要允许所有客户端使用基于md5的身份验证,请使用0.0.0.0/0作为地址。

# TYPE DATABASE USER ADDRESS METHOD

# "local" is for Unix domain socket connections only

local all all trust

# IPv4 local connections:

host all all 0.0.0.0/0 md5

# IPv6 local connections:

host all all ::1/128 md5

要使上述更改生效,您需要重新启动PostgreSQL服务器。

# service postgresql restart

2.更改密码并创建用户

默认情况下,PostgreSQL创建一个用户postgres和组postgres来维护PostgreSQL实例。 要设置postgres用户的密码,请运行以下命令

# passwd postgres

更改密码后,以postgres用户身份登录

# su - postgres