PostgreSQL 安装

1、下载postgresql 最新版http://www.postgresql.org/ftp/source/

2、解压文件

tar -zxvf  postgresql-14.1.tar.gz

3、准备工作

a)添加一个postgreSQL用户(注:这里名称为postgres,因这样最易懂)

[补充:其他用户比如test要启动数据库的话,text账号需要满足两个条件:a.chown -R test data(即PGDATA以及表空间目录必须700);b.给予test,PGDATA以及表空间目录必须700);b.给予test,PGHOME的rx权限]

 adduser postgres

b)创建pg安装路径并设置owner

mkdir /opt/pgsql
chown postgres /opt/pgsql

c) 创建数据存储目录并设置owner

mkdir /opt/pgsql/data
chown postgres /opt/pgsql/data   #权限不够时,加sudo

d) 创建保存pg日志的文件

touch /opt/pgsql/pgsql.log
chown postgres /opt/pgsql/pgsql.log

4、编译并安装

cd postgresql-14.1
./configure --prefix=/opt/pgsql
make
make install

./configure --prefix=/opt/pgsql失败的时候,

如果没安装Readline 库,既编译时加上 --without-readline 选项,那么 psql 端不能使用上下翻键和 Backspace 键,也不能查看历史 psql 命令,非常不方便。

./configure --prefix=/opt/pgsql --without-readline --without-zlib

5、初始化数据库目录并启动

a)切换用户

su - postgres

b)初始化数据库并启动

cd /opt/pgsql/bin
./initdb -D /opt/pgsql/data
#不带日志启动
./postgres -D /opt/postgresql/data
# 带日志启动
./pg_ctl -D /opt/pgsql/data -l /opt/pgsql/pgsql.log start
#或者
./postmaster -D /opt/pgsql/data > /opt/pgsql/pgsql.log 2>&1 &

其他命令:

 @查看数据库状态:

./pg_ctl -D /opt/pgsql/data status

@关闭数据库:

./pg_ctl -D /opt/pgsql/data stop

@进入pgsql:

./psql

@查看pg是否启动

ps -A | grep postgres

ps -aux | grep postgres

查看http://wiki.postgresql.org/wiki/Apt

注意:安装完毕后,系统会创建一个数据库超级用户“postgres”, 密码为空。这个用户既是不可登录的操作系统用户,也是数据库用户.所以使用pgAdmin3时要先设置密码

//远程连接

修改/opt/pgsql/data/pg_hba.conf

找不到时候 用 find / -name pg_hba.conf

host all all 0.0.0.0/0 trust  
 

#host是连接类型,第一个all是数据库,第二个是用户,第三个是IP,修改成 0.0.0.0/0,代表所有ip都可以连接,默认是你本地IP,(/24 代表掩码255.255.255.0)。md5是传输时使用何种方式进行加密。

修改/opt/pgsql/data/postgresql.conf

#listen_address='localhost'改成listen_address = '*'

最后 重启服务

./pg_ctl -D /opt/pgsql/data stop

./pg_ctl -D /opt/pgsql/data -l /opt/pgsql/pgsql.log start

#创建用户

create user liunn;

#创建密码

alter user liunn with encrypted password 'liunpassword';

#创建数据库

create database liunndatabase;

#数据库关联用户

grant all privileges on database liunndatabase to liunn;

键入\q退出外壳。

使用普用户创建数据库时候
PG::Error: ERROR: permission denied to create database

解决方式:
使用postgres 登录
sudo -u postgres psql

postgres=# ALTER ROLE xxxx CREATEROLE CREATEDB;

xxxx: 普通用户名称

赋予超级权限
ALTER ROLE xxxx CREATEROLE SUPERUSER;

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐