1、安装postgresql+timescaledb
1-1、安装postgresql
1-1-1、安装postgresql依赖
离线依赖包:
💡 提示
请按照文档操作正确上传postgresql离线依赖包至指定路径,如果上传为其他路径则需要手动修改命令。
mkdir /temp/pgsql #创建postgresql依赖存放目录
#创建postgresql依赖存放目录后 需要将上传的postgresql离线依赖包上传至该路径
cd /temp/pgsql #切换到存放目录
tar -xvf postgresql_depend.tar #解压
‼️ 特别注意
安装数据库依赖需要按照文章指定安装顺序安装。
dpkg -i icu-devtools_70.1-2_amd64.deb
dpkg -i libicu-dev_70.1-2_amd64.deb
dpkg -i libpkgconf3_1.8.0-1_amd64.deb
dpkg -i pkgconf_1.8.0-1_amd64.deb
dpkg -i libncurses-dev_6.3-2ubuntu0.1_amd64.deb
dpkg -i libreadline-dev_8.1.2-1_amd64.deb
1-1-2、编译数据库
💡 提示
由于postgresql官方提供ubuntu的离线方式仅为源码编译使用,下面我们需要用官方源码编译我们的数据库文件进行安装。
数据库离线源码:
cd /temp/pgsql #切换到存放目录
#将上传的postgresql数据库离线源码上传至该路径
tar -xvf postgresql-14.0.tar.gz #解压
💡 注意
数据库编译的过程比较长,请耐心等待。
useradd postgres #创建用户
passwd postgres #设置一个密码 方便数据库连接 可直接设置为123
mkdir /usr/local/postgresql14 #创建数据库目录
chown -R postgres:postgres /usr/local/postgresql14/ #更改权限
mkdir /usr/local/postgresql14/pgdb #创建数据目录
chown -R postgres:postgres /usr/local/postgresql14/pgdb #更改权限
mkdir /usr/local/postgresql14/logs #创建日志目录
chown -R postgres:postgres /usr/local/postgresql14/logs #更改权限
cd /temp/pgsql//postgresql-14.0
./configure --prefix=/usr/local/postgresql14 #配置
make && make install #编译以及安装
编译安装后可以在数据库目录下查看是否有对应文件:
1-1-3、安装数据库
su postgres #切换postgres为用户
/usr/local/postgresql14/bin/initdb -D /usr/local/postgresql14/pgdb #开始初始化
/usr/local/postgresql14/bin/pg_ctl -D /usr/local/postgresql14/pgdb -l /usr/local/postgresql14/logs/postgresql.log start #启动数据库服务
exit #退出postgres用户
图中所示服务启动成功:
1-1-4、配置数据库服务
1-1-4-1、配置服务启停
💡 提示
为了方便数据库服务启停,还需要设置一个服务单元。
vi /etc/systemd/system/postgresql14.service
💡 提示
用vi命令进入编辑界面后复制服务单元内容到文件中。
[Service]
Type=forking
WorkingDirectory=/usr/local/postgresql14/bin/
User=postgres
ExecStart=/usr/local/postgresql14/bin/pg_ctl -D /usr/local/postgresql14/pgdb start
ExecStop=/usr/local/postgresql14/bin/pg_ctl -D /usr/local/postgresql14/pgdb stop
ExecReload=/usr/local/postgresql14/bin/pg_ctl -D /usr/local/postgresql14/pgdb restart
Restart=always
RestartSec=40s
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=postgresql
PrivateTmp=true
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable postgresql14.service #允许数据库开机自启
💡 提示
由于数据库服务启动的方式不一样,需要首先关闭数据库服务服务。
su postgres #切换postgres为用户
/usr/local/postgresql14/bin/pg_ctl -D /usr/local/postgresql14/pgdb -l /usr/local/postgresql14/logs/postgresql.log stop #关闭数据库服务
exit #退出postgres用户
systemctl start postgresql14.service #启动数据库服务
systemctl stop postgresql14.service #关闭数据库服务
systemctl restart postgresql14.service #重启数据库服务
systemctl status postgresql14.service #查看数据库服务状态
1-1-4-2、配置数据库访问
💡 提示
为了让外部访问数据库,需要修改配置。
sed -i '$a\host all all 0.0.0.0/0 trust' /usr/local/postgresql14/pgdb/pg_hba.conf
sed -i '$a\listen_addresses = \'*\'' /usr/local/postgresql14/pgdb/postgresql.conf
systemctl restart postgresql14.service #重启服务生效
💡 注意
还需要在usr/local/postgresql14/pgdb/postgresql.conf下查看是否有这项参数,如果有则注释。
💡 提示
完成这步后就可以用navicat等数据库管理工具访问数据库。
1-2、安装timescaledb
1-2-1、安装timescaledb依赖
离线依赖包:
💡 提示
请按照文档操作正确上传timescaledb离线依赖包至指定路径,如果上传为其他路径则需要手动修改命令。
mkdir /temp/pgsql/timescaledb #创建存放目录
cd /temp/pgsql/timescaledb
tar -xvf timescaledb_depend.tar #解压
‼️ 特别注意
安装数据库依赖需要按照文章指定安装顺序安装。
cd /temp/pgsql/timescaledb
dpkg -i libuv1_1.43.0-1ubuntu0.1_amd64.deb
dpkg -i libjsoncpp25_1.9.5-3_amd64.deb
dpkg -i librhash0_1.4.2-1ubuntu1_amd64.deb
dpkg -i dh-elpa-helper_2.0.9ubuntu1_all.deb
dpkg -i emacsen-common_3.0.4_all.deb
dpkg -i cmake-data_3.22.1-1ubuntu1.22.04.2_all.deb
1-2-2、添加环境变量数据库路径
cat >> /etc/profile <<EOF
#pg_config
export PGHOST=localhost
export PATH=\$PATH:/usr/local/postgresql14/bin/
EOF
1-2-3、编译数据库插件
💡 提示
由于timescaledb官方提供ubuntu的离线方式仅为源码编译使用,下面我们需要用官方源码编译我们的数据库文件进行安装。
数据库插件离线源码:
cd /temp/pgsql/timescaledb
tar -xvf timescaledb-2.16.1.tar.gz
cd /temp/pgsql/timescaledb/timescaledb-2.16.1
./bootstrap -DUSE_OPENSSL=0 -DREGRESS_CHECKS=OFF
cd ./build && make
make install
1-2-4、配置并安装timescaledb
💡 提示
先要修改postgersql.conf的配置,路径为/usr/local/postgresql14/pgdb/postgersql.conf。
systemctl restart postgresql14
💡 提示
配置数据库并重启数据库服务后,在数据库管理工具(如:navicat),或数据库命令行中输入以下命令安装timescaledb插件。
create extension timescaledb;