PostgreSQL安装及入门
一、windows系统安装
安装完成后查看 D:\02-ES\PostgreSQL\14\data data文件下有无数据
没有的话需要命令生成
initdb -E UTF-8 -D D:\02-ES\PostgreSQL\14\data
注册为服务
pg_ctl register -D D:\02-ES\PostgreSQL\14\data
修改配置文件 postgresql.conf
listen_addresses = '*'
port = 5432
其他配置可适当修改
启动服务
pg_ctl start -D D:\02-ES\PostgreSQL\14\data
有时候借助第三方工具登录发现报错,是因为没创建角色
createuser -s -r postgres 创建完无需密码即可登录
二、Liunx系统安装
1、创建postgres用户与用户组
--创建postgres用户组
groupadd postgres
--创建postgres用户,其用户组为postgres
useradd postgres -g postgres
2、安装必需依赖
yum install -y gcc gcc-c++
yum install -y readline-devel
yum install -y zlib-devel
3、解压源码包并进行编译
--解压源码包
tar -zxvf postgresql-13.3.tar.gz
--解压出 postgresql-13.3文件夹,移动到指定路径下
mv postgresql-13.3 /opt/
--创建一个路径用于存放编译后的postgresql
mkdir /opt/postgresql
--进入postgresql-13.3路径下,编译源码并将编译后的postgresql存放在/opt/postgresql路径下
cd /opt/postgresql
./configure --prefix=/opt/postgresql
--构建
make
--安装文件
make install
4、创建存放postgresql数据的目录,初始化数据库并启动
--在/opt/postgresql路径下创建数据目录pg_data
mkdir /opt/postgresql/pg_data
--修改数据目录的所属用户与用户组均为postgres
chown -R postgres:postgres /opt/postgresql/pg_data
--切换到postgres用户,并初始化数据库
su postgres
/opt/postgresql/bin/initdb -D /opt/postgresql/pg_data
--启动数据库,并将日志打印到pg.log文件上
/opt/postgresql/bin/pg_ctl -D /opt/postgresql/pg_data -l /opt/postgresql/pg_data/pg.log start
5、创建测试数据库,修改超级管理员postgres的密码
--创建test数据库
/opt/postgresql/bin/createdb test
--访问test数据库
/opt/postgresql/bin/psql test
--修改管理员postgres的密码为postgres
ALTER USER postgres WITH PASSWORD 'postgres';
6、修改配置(远程连接授权)
--修改pg_hba.conf文件
vi /opt/postgresql/pg_data/pg_hba.conf
修改IPV4的连接
# IPv4 local connections:
host all all 0.0.0.0/0 trust
--修改postgresql.conf文件
vi /opt/postgresql/pg_data/postgresql.conf
修改listen_address为任意ip
listen_addresses = '*'
--完成修改后重启数据库
/opt/postgresql/bin/pg_ctl -D /opt/postgresql/pg_data -l /opt/postgresql/pg_data/pg.log restart
psql常用命令
命令行中使用的psql命令
参数 | 参数含义 |
---|---|
-h | 数据库服务器的IP |
-p | 数据库服务器的端口号 |
-U | 连接数据库服务器时使用数据库用户 |
-w | 连接服务器时不需要输入用户密码(默认不输入用户密码) |
-W | 连接服务器时需要输入用户密码 |
-d | 指定要连接的数据库(默认连接postgres数据库) |
-c | 执行单一的SQL命令 |
-f | 执行sql脚本文件 |
-V | 输出版本信息 |
--连接本地数据库,端口号为5432,使用postgres用户,连接test数据库
./psql -h 127.0.0.1 -p 5432 -U postgres -d test
--执行sql脚本文件/root/pg.sql
./psql -h 127.0.0.1 -p 5432 -U postgres -d test -f /root/pg.sql
--执行SQL语句
./psql -h 127.0.0.1 -p 5432 -U postgres -d test -c "sql_one;sql_two;"
--查看数据库版本
./psql -V
pg命令行中使用的psql命令
命令 | 含义 |
---|---|
\h | 查看sql语法 |
\l | 列出所有数据库 |
\dn | 列出所有schema(模式) |
\db | 显示所有表空间(相当于一个目录,表放在表空间中) |
\d | 查看当前schema中所有的表、视图、序列 |
\dt | 只显示匹配的表 |
\di | 只显示匹配的索引 |
\ds | 只显示匹配的序列 |
\dv | 只显示匹配的视图 |
\df | 只显示匹配的函数 |
\sf | 查看指定的函数定义 |
\du | 列出数据库中所有用户 |
\dp | 显示表的分配情况 |
\c | 切换数据库 |
\q | 退出pg命令行 |
--查看所有数据库
postgres=# \l
--显示pg内部的函数acos
postgres=# \df acos
--查询acos函数的函数定义
postgres=# \sf acos
--退出pg命令行
postgres=# \q