自学内容网 自学内容网

第2章-PostgreSQL 15安装及登录

1、windows安装

按照提示双击安装包一步一步操作即可

2、centos/redhat安装(在线安装)

# 安装源
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# 查看yum源配置文件是否下载
ll /etc/yum.repos.d

# 安装依赖包
yum install epel-release.noarch -y 
yum install libzstd.x86_64 -y
# 如果报错Another app is currently holding the yum lock; waiting for it to exit...  The other application is: PackageKit    Memory : 152 M RSS (573 MB VSZ)    Started: Sun Jan 29 09:34:38 2023 - 01:58 ago    State  : Sleeping, pid: 2846
# 解决办法
# 1、重启虚拟机
# 2、删除此文件 rm -f /var/run/yum.pid

# 安装
yum install -y postgresql15-server
# 安装辅助工具包
yum install -y postgresql15-contrib

# 创建实例
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb

# 管理
# 自启
systemctl enable postgresql-15
# 开启
systemctl start postgresql-15
# 关闭
systemctl stop postgresql-15
# 查看
systemctl status postgresql-15

# 默认路径
/var/lib/pgsql/15/data

# 登录
su - postgres # 初始化密码不知道所以登录前先改密码,密码:123456
psql

# 版本
show server_version;
# 可能版本不是最新,如果想安装最新版本,需要源码安装。

# 退出
\q

3、源码安装

# 依赖包
yum -y install gcc-c++ 
yum install -y readline-devel 
yum install -y zlib-devel

# 上传解压
tar -xvf postgresql-15.1.tar.bz2

# 编译安装
./configure --prefix=/usr/local/pg15

# 路径
--prefix=PREFIX             # 将所有文件安装在PREFIX目录下,默认/usr/local/pgsql
--exec-prefix=EXEC-PREFIX   # 可以在不同的前缀EXEC-PREFIX下安装与体系结构相关的文件,而不是prefix设置的前缀。这对于在主机之间共享独立于体系结构的文件非常有用。如果省略这一点,则EXEC-PREFIX将被设置为PREFIX,并且与体系结构相关的和独立的文件将被安装在同一树下,这可能正是您想要的。
--bindir=DIRECTORY          # 指定可执行程序的目录。默认值是EXEC-PREFIX/bin
      
# 特性
--enable-nls[=LANGUAGES]    # 启用本地语言支持(NLS),即以英语以外的语言显示程序消息的能力。
--with-perl                 # 使用PL/Perl语言来编写自定义函数。
--with-python               # 使用python语言来编写PL/Python自定义函数。

# 禁用
--without-readline          # 防止使用Readline库(以及libedit)。
--without-zlib              # 阻止使用Zlib库。这将禁用pg_dump和pg_restore中对压缩档案的支持。

make -j 4;make install -j 4

# 做链接
ln -sf /usr/local/pg15 /usr/local/pgsql
# 可以编译安装高版本的PG,之后停掉数据库,将目录指向新的数据库。

# 创建用户
useradd postgres 
echo "pg123" | passwd --stdin postgres

# 环境变量
su - postgres
vi .bash_profile
export PATH=/usr/local/pgsql/bin:$PATH
export LD_LIBARARY_PATH=/usr/local/pgsql/lib:$LD_LIBARARY_PATH
export PGDATA=/home/postgres/pgdata

# 创建实例
initdb

# 启动
pg_ctl start -D $PGDATA

# 登录
psql -d postgres -p 5432

# 关闭
pg_ctl stop -D $PGDATA [-m ***]
smart            # 所有连接终止后关闭数据库。如果客户端一直不终止,则无法关闭数据库。
fast             # 快速关闭数据库。如果有客户端连接则断开,让已有未提交的事务回滚。
immediate        # 立即关闭,未提交事务未回滚。下次启动数据库需要进行恢复。

# 查看
\l

# 脚本
echo "alias pgst='pg_ctl start -D $PGDATA'" >>/home/postgres/.bashrc
echo "alias pgsp='pg_ctl stop -D $PGDATA -m  fast'" >>/home/postgres/.bashrc
echo "alias pglg='psql -d postgres -p 5432 -L /home/postgres/pg.log'" >>/home/postgres/.bashrc

4、登录

4.1 本地登录

psql 
-U  用户名(默认postgres)
-W  密码
-h  数据库IP(默认本地登录)
-p  数据库端口(默认5432)
-d  需要访问的数据库名称(默认postgres库)

# 修改PG用户密码
alter user postgres with password 'pg123';

-L 输出日志的路径

4.2 远程登录

# 参数
vi /home/postgres/pgdata/pg_hba.conf
host    all             all             0/0                     trust
# trust 无条件地允许连接。这种方法允许任何可以连接到PostgreSQL数据库服务器的人以任何PostgreSQL用户登录,而不需要密码或任何其他身份验证。

host    all             all             0/0                     md5
# md5 对用户的密码进行scran - sha -256或MD5验证,需要输入密码。

vi  /home/postgres/pgdata/postgresql.conf
listen_addresses = '*'
port = 5432  

# 账号
create user test with password 'test123';
create database testdb with encoding='utf8' owner=test;
grant all privileges on database testdb to test; 

alter user postgres with password 'pg123';

# 登录
psql -U test -W test123 -h 10.0.0.151 -p 5432 -d testdb
psql -U postgres -h 172.17.0.3 -p5432 -d postgres
-U  用户名
-h   数据库IP
-p   数据库端口
-d   需要访问的数据库名称

原文地址:https://blog.csdn.net/dws123654/article/details/143828555

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!