创建 highgo 用户
创建用户
1 2 3 4
| # 创建用户 useradd highgo -d /home/highgo # 设置密码 1qaz@WSX passwd highgo
|
提升用户权限
1 2
| chmod u+w /etc/sudoers vi /etc/sudoers
|
查找到 Allow root to run any commands anywhere,在 root 下增加一行命令
准备安装包
hgdb6.0.4-enterprise-centos7-x86-64-20220127.rpm
postgis3.0-6.0.4-enterprise-centos7-x86-64-20220127.rpm
放到 /home/highgo 目录下
1 2 3
| # 修改安装包所属用户 sudo chown highgo:highgo hgdb6.0.4-enterprise-centos7-x86-64-20220127.rpm sudo chown highgo:highgo postgis3.0-6.0.4-enterprise-centos7-x86-64-20220127.rpm
|
安装数据库
切换到 highgo 用户,并进入用户目录
1 2
| su highgo cd /home/highgo
|
安装 hgdb
1
| sudo rpm -ivh hgdb6.0.4-enterprise-centos7-x86-64-20220127.rpm
|
数据库将被安装到 /opt/HighGo6.0.4-cluster 目录下
安装 postgis
1
| rpm -ivh postgis3.0-6.0.4-enterprise-centos7-x86-64-20220127.rpm
|
配置环境变量
编辑 /etc/profile 文件
1 2 3 4 5
| # 切换到 root 用户 su root # 添加环境变量 chmod u+w /etc/profile vi /etc/profile
|
添加以下内容
1 2
| # highgo environment source /opt/HighGo6.0.4-cluster/etc/highgodb.env
|
编辑 /etc/ld.so.conf 文件
1 2 3
| # 添加环境变量 chmod u+w /etc/ld.so.conf vi /etc/ld.so.conf
|
添加以下内容
1 2 3
| # highgo /usr/local/lib /usr/local/hgdb-ee
|
执行
创建数据库
切换到 highgo 用户
执行命令
1 2 3 4 5
| # 创建目录 sudo mkdir /opt/HighGo6.0.4-cluster/data sudo chown highgo:highgo /opt/HighGo6.0.4-cluster/data # 初始化 initdb
|
设置密码 1qaz@WSX
启动数据库
配置 postgis 扩展
1 2
| psql -d highgo create extension postgis;
|
配置允许远程连接
1
| vi /opt/HighGo6.0.4-cluster/data/pg_hba.conf
|
找到 IPv4 local connections,把 127.0.0.1/32 改为 0.0.0.0/0
1
| vi /opt/HighGo6.0.4-cluster/data/postgresql.conf
|
找到 listen_addresses,把 localhost 改为 *
设置数据库开机自启
新建 highgodb.service
在 /etc/systemd/system 目录下新建配置文件 highgodb.service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| [Unit] # 简短描述 Description=highgodb.service # 在network.target服务之后运行,这里可以不要 After=network.target
[Service] Type=forking # 服务的类型,常用的有 simple(默认类型) 和 forking。默认的 simple 类型可以适应于绝大多数的场景,因此一般可以忽略这个参数的配置。而如果服务程序启动后会通过 fork 系统调用创建子进程,然后关闭应用程序本身进程的情况,则应该将 Type 的值设置为 forking,否则 systemd 将不会跟踪子进程的行为,而认为服务已经退出。 系统调用pg后会创建子进程,然后关闭本身进程,所以这里选择forKing进行子进程跟踪 # 运行程序的用户和群组 User=highgo Group=highgo # 工作目录 WorkingDirectory=/opt/HighGo6.0.4-cluster # 启动命令 ExecStart=/opt/HighGo6.0.4-cluster/bin/pg_ctl start -D /opt/HighGo6.0.4-cluster/data # 重新加载 ExecReload=/opt/HighGo6.0.4-cluster/bin/pg_ctl restart -D /opt/HighGo6.0.4-cluster/data # 停止程序 ExecStop=/opt/HighGo6.0.4-cluster/bin/pg_ctl stop -D /opt/HighGo6.0.4-cluster/data # 是否给服务分配独立的临时空间,需要 PrivateTmp=true
[Install] WantedBy=multi-user.target # 和前面的 Wants 作用相似,只是后面列出的不是服务所依赖的模块,而是依赖当前服务的模块。
|
重载 systemctl 服务
启动 highgodb 服务
1
| systemctl start highgodb.service
|
判断服务是否启动
1 2 3 4 5
| systemctl is-active highgodb.service # 也可以通过此命令判断服务状态 systemctl status highgodb.service # 如果启动配置失败,也可以通过journalctl命令查看日志查找原因 journalctl -u highgodb.service
|
停止 highgodb 服务
1
| systemctl stop highgodb.service
|
设置开机自启动
1
| systemctl enable highgodb.service
|
如果设置了自动启动但是开机一会儿被关闭的话,执行
这是禁止 highgodb 自带的启动服务,这个服务有问题,并不能自动启动
1
| systemctl disable hgdb-enterprise-6.0.4.service
|