赞
踩
目录
1.操作系统:CentOS 7.6.1810
2.PostgreSQL版本: 16.0
wget https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.gz
tar -xzvf postgresql-16.0.tar.gz
解压之后会看到下面的文件
进入postgresql-16.0目录,编译configure文件
./configure --prefix=/usr/local/pgsql
参数:--prefix=/usr/local/pgsql
表示编译好的文件放到目录"/usr/local/pgsql"里,这个目录不用用户自己创建,编译过程会自动创建。
注意事项:
PostgreSQL编译过程会用到一些依赖的库,如果你的操作系统比较旧,编译过程可能会出现错误,告诉你要安装缺少的依赖库。
看到./config.status说明编译完成,可以看见config.status文件
make && make install
完成以后,在"--prefix=/usr/local/pgsql"参数对应的"/usr/local/pgsql"的目录就是我们所有PostgreSQL存放的文件,这里的这个data和log文件现在是没有的。
编译安装成功后,接下来要做的就是创建一个普通用户,因为默认Linux超级用户(root)不能启动PostgreSQL,所以需要创建一个普通用户来操作数据库。
- #创建用户组postgres
- groupadd postgres
- #创建用户postgres并设置groups、gid和家目录
- useradd -g postgres -G postgres -d /home/postgresql postgres
- #设置用户密码
- passwd postgres
注意当前路径是在/usr/local/pgsql下
mkdir data log
接下来需要设置权限,将/usr/local/pgsql (我们安装PostgreSQL数据库的目录) 目录全部赋权给postgres用户
chown -R postgres.postgres /usr/local/pgsql/
为了方便起见设置一下相关的环境变量,此处是要设置postgres用户的环境变量,所以首先要把Linux的登陆用户由root切换到以postgres用户登陆。
su - postgres
因为我们创建Linux用户"postgres"是指定了用户的目为"/home/postgresql",所以登陆后显示的目录是:/home/postgresql
要创建环境变量,实际上就是对文件.bash_profile的修改,所以我们首先要找到这个文件,这个文件就在"/home/postgresql"里,由于这个文件是隐藏文件所以要加-a参数
ll -a
编辑.bash_profile文件
vim .bash_profile
添加下面的内容
使配置的环境变量生效
source /home/postgresql/.bash_profile
检查是否生效
psql -V
看到安装PostgreSQL的版本号则代表生效
新安装的PostgreSQL数据库系统,要先初始化基本的基础数据库,然后我们才能在上面创建我们自己的数据库。初始化数据库的指令是"initdb",这个指令位于"/usr/local/pgsql/bin/"
我们可以用指令"initdb --help"看看这个文件的帮助信息。
如上图,可以看到在使用"initdb"进行初始化的时,可以指定参数进行一些初始化工作,例如指定pgdata(postgresql数据库目录)、指定encoding(编码)、指定数据库超级用户的用户名和密码等等。注意,如果pgdata目录没有指定,则会默认使用环境变量中的PGDATA指定的目录作为数据库存放的目录,由于之前我们刚刚设置了"PGDATA=/usr/local/pgsql/data"环境变量,所以此处我们也就无需再额外指定,直接执行初始化命令即可。
initdb
若是执行initdb看到下面报错,说明现在登陆的不是postgres用户,需要切换到postgres用户来执行initdb命令
看到下面信息就代表成功
同时在"/usr/local/pgsql/data]"的目录可以看到生成的数据和配置文件等。
主要是配置postgresql.conf 和 pg_hba.conf 个。
vim postgresql.conf
找到"#port"和"#listener_address"这两个参数,这两个参数是相邻的,将两行行首的"#"删除。
将"listen_addressee='localhost'"改为当前服务器的IP,如果改为
"listen_addressee='*'",将监听整个网络。
默认的监听端口是5432,可以自行指定另外一个端口号。
max_connections是客户端最大的连接数, 缺省值100有点少,特别是业务系统,可以调整成1000或者更高。
vim pg_hba.conf
将红框设置为 10.10.100.0/24,意思是10.10.100网段的IP 连接此服务器上的PostgreSQL. 如果想允许所有IP都可以连接此服务器,则可以配置成0.0.0.0/0,但这样是不安全的,可以把trust改为md5,表示需要密码访问,算是提供一个最低级的安全防护。
启动与关闭数据库是执行pg_ctl命令,在执行时,需要指定数据库路径和日志文件路径,格式如下。
pg_ctl -D <数据存放路径> -l <日志文件路径> [ stop | start ]
如果已经指定了环境变量PGDATA,"数据存放路径"参数可以省略。
pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/log/pg_server.log start
此步骤需要root用户操作,如果你是用PostgreSQL的用户postgres登陆的话,要用exit指令退出,回到root登陆才能操作。
PostgreSQL解压后的安装包目录中提供了数据库启动与关闭的脚本,此脚本不但可以帮助我们简化操作,而且可以用作开机启动的脚本和service/systemctl 控制服务的脚本。目录里"linux"文件就是我们要找的文件。
如果找不到linux文件可以执行下面命令查看
find / -name macos
把文件"linux"拷贝到目录"etc/init.d/"下,并改名为postgresql。
把脚本文件"postgresql"加入到开机启动的程序列表。
赋予"postgresql"文件有执行的权限。
- cp /opt/postgresql/postgresql-16.0/contrib/start-scripts/linux /etc/init.d/postgresql
- chkconfig --add postgresql或者systemctl enable postgresql
- chmod 755 /etc/init.d/postgresql
主要设置文件"postgresql"的四个变量的值。
vim /etc/init.d/postgresql
prefix 是软件的安装路径
PGDATA 是数据存放路径
PGUSER 是启动PostgreSQL服务器的用户
PGLOG 是日志文件
以后可以开机启动和通过service命令控制启动和关闭了。
service postgresql start/stop
可以通过PostgreSQL自带的客户端工具程序psql来进行连接,这个psql指令文件位于/usr/local/pgsql/bin目录下,因为我们做了变量环境设置,所以可以在任何目录下直接输入psql连接PostgreSQL服务器。温馨提示:用客户端程序psql连接数据库前,要把当前Linux登陆用户从root切换到postgres用户,这个是我们创建的PostgreSQL的超级用户。
- su - postgres
- psql
可以看到,已经连接上了数据库服务器。
postgres=# \password
命令"\l"是显示数据库。更多的SQL操作命令可以参考PostgreSQL的官方文档。退出pgsql客户端命令是"\q"或者exit
测试连接成功
PostgreSQL安装到此完毕。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。