嗨!今天我按常规方式升级了论坛(管理 > 仪表板 > 升级),从 2.4.0 版本开始。
之后,回到升级视图以继续升级其余插件时,出现了以下消息:
您正在运行旧版本的 Discourse 镜像。
在运行最新镜像之前,Web UI 中的升级功能将被禁用。为此,请使用 SSH 登录服务器并运行:
cd /var/discourse git pull ./launcher rebuild app
到目前为止一切正常。我打开终端,连接到虚拟机,并像往常一样执行了上述步骤,但现在却遇到了一个从未见过的错误。以下是日志:
root@foro:/var/discourse# ./launcher rebuild app
确保 launcher 已是最新
获取 origin
launcher 已是最新
cd /pups && git pull && /pups/bin/pups --stdin
已是最新。
I, [2020-07-03T17:40:38.599175 #1] INFO -- : 加载 --stdin
I, [2020-07-03T17:40:38.608573 #1] INFO -- : > apt-get remove -y postgresql-10 postgresql-client-10 postgresql-contrib-10
I, [2020-07-03T17:40:40.109309 #1] INFO -- : 正在读取软件包列表...
正在构建依赖关系树...
正在读取状态信息...
软件包 'postgresql-10' 未安装,因此未移除
软件包 'postgresql-client-10' 未安装,因此未移除
0 个升级,0 个新安装,0 个移除,0 个未升级。
I, [2020-07-03T17:40:40.110000 #1] INFO -- : > apt-get update && apt-get install -y postgresql-9.5 postgresql-client-9.5 postgresql-contrib-9.5
debconf:由于未安装 apt-utils,延迟软件包配置
I, [2020-07-03T17:40:49.742789 #1] INFO -- : 获取:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
获取:2 http://apt.postgresql.org/pub/repos/apt buster-pgdg InRelease [84.6 kB]
命中:3 http://deb.debian.org/debian buster InRelease
获取:4 http://deb.debian.org/debian buster-updates InRelease [51.9 kB]
获取:5 https://deb.nodesource.com/node_10.x buster InRelease [4,584 B]
获取:6 http://security.debian.org/debian-security buster/updates/main amd64 Packages [208 kB]
获取:7 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 Packages [177 kB]
获取:8 http://deb.debian.org/debian buster-updates/main amd64 Packages.diff/Index [3,688 B]
获取:9 http://deb.debian.org/debian buster-updates/main amd64 Packages 2020-06-04-2016.16.pdiff [1,101 B]
获取:10 http://deb.debian.org/debian buster-updates/main amd64 Packages 2020-06-07-1403.53.pdiff [439 B]
获取:11 http://deb.debian.org/debian buster-updates/main amd64 Packages 2020-06-13-2000.26.pdiff [552 B]
获取:11 http://deb.debian.org/debian buster-updates/main amd64 Packages 2020-06-13-2000.26.pdiff [552 B]
获取:12 https://deb.nodesource.com/node_10.x buster/main amd64 Packages [768 B]
已获取 599 kB,耗时 1 秒(686 kB/s)
正在读取软件包列表...
正在读取软件包列表...
正在构建依赖关系树...
正在读取状态信息...
建议的软件包:
postgresql-doc-9.5 libdbd-pg-perl
将安装以下新软件包:
postgresql-9.5 postgresql-client-9.5 postgresql-contrib-9.5
0 个升级,3 个新安装,0 个移除,13 个未升级。
需要下载 5,700 kB 的归档文件。
此操作后将额外占用 27.2 MB 的磁盘空间。
获取:1 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-client-9.5 amd64 9.5.22-1.pgdg100+1 [1,252 kB]
获取:2 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-9.5 amd64 9.5.22-1.pgdg100+1 [3,985 kB]
获取:3 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-contrib-9.5 amd64 9.5.22-1.pgdg100+1 [463 kB]
已获取 5,700 kB,耗时 0 秒(27.1 MB/s)
选择此前未选中的软件包 postgresql-client-9.5。
(正在读取数据库 ... 当前已安装 43929 个文件和目录。)
准备解包 .../postgresql-client-9.5_9.5.22-1.pgdg100+1_amd64.deb ...
正在解包 postgresql-client-9.5 (9.5.22-1.pgdg100+1) ...
选择此前未选中的软件包 postgresql-9.5。
准备解包 .../postgresql-9.5_9.5.22-1.pgdg100+1_amd64.deb ...
正在解包 postgresql-9.5 (9.5.22-1.pgdg100+1) ...
选择此前未选中的软件包 postgresql-contrib-9.5。
准备解包 .../postgresql-contrib-9.5_9.5.22-1.pgdg100+1_amd64.deb ...
正在解包 postgresql-contrib-9.5 (9.5.22-1.pgdg100+1) ...
正在设置 postgresql-client-9.5 (9.5.22-1.pgdg100+1) ...
update-alternatives:警告:强制重新安装替代项 /usr/share/postgresql/12/man/man1/psql.1.gz,因为链接组 psql.1.gz 已损坏
正在设置 postgresql-9.5 (9.5.22-1.pgdg100+1) ...
正在创建新的 PostgreSQL 集群 9.5/main ...
/usr/lib/postgresql/9.5/bin/initdb -D /var/lib/postgresql/9.5/main --auth-local peer --auth-host md5
此数据库系统的文件将由用户 "postgres" 拥有。
该用户也必须拥有服务器进程。
数据库集群将使用区域设置 "C.UTF-8" 进行初始化。
默认数据库编码已相应设置为 "UTF8"。
默认文本搜索配置将设置为 "english"。
数据页校验和已禁用。
修复现有目录 /var/lib/postgresql/9.5/main 的权限 ... 完成
创建子目录 ... 完成
选择默认 max_connections ... 100
选择默认 shared_buffers ... 128MB
选择默认时区 ... Etc/UTC
选择动态共享内存实现 ... posix
创建配置文件 ... 完成
在 /var/lib/postgresql/9.5/main/base/1 中创建 template1 数据库 ... 完成
初始化 pg_authid ... 完成
初始化依赖项 ... 完成
创建系统视图 ... 完成
加载系统对象描述 ... 完成
创建排序规则 ... 完成
创建转换 ... 完成
创建词典 ... 完成
设置内置对象的权限 ... 完成
创建信息架构 ... 完成
加载 PL/pgSQL 服务器端语言 ... 完成
对数据库 template1 进行 vacuum ... 完成
将 template1 复制到 template0 ... 完成
将 template1 复制到 postgres ... 完成
将数据同步到磁盘 ... 完成
成功。您现在可以使用以下命令启动数据库服务器:
/usr/lib/postgresql/9.5/bin/pg_ctl -D /var/lib/postgresql/9.5/main -l logfile start
版本 集群 端口 状态 所有者 数据目录 日志文件
9.5 main 5433 关闭 postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log
update-alternatives:警告:强制重新安装替代项 /usr/share/postgresql/12/man/man1/postmaster.1.gz,因为链接组 postmaster.1.gz 已损坏
invoke-rc.d:无法确定当前运行级别
invoke-rc.d:policy-rc.d 拒绝了启动执行。
正在设置 postgresql-contrib-9.5 (9.5.22-1.pgdg100+1) ...
正在处理 postgresql-common (213.pgdg100+1) 的触发器 ...
从已安装的 myspell/hunspell 软件包构建 PostgreSQL 词典...
正在删除过时的词典文件:
I, [2020-07-03T17:40:49.743707 #1] INFO -- : > mkdir -p /shared/postgres_run
I, [2020-07-03T17:40:49.747572 #1] INFO -- :
I, [2020-07-03T17:40:49.748032 #1] INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2020-07-03T17:40:49.750621 #1] INFO -- :
I, [2020-07-03T17:40:49.751119 #1] INFO -- : > chmod 775 /shared/postgres_run
I, [2020-07-03T17:40:49.753527 #1] INFO -- :
I, [2020-07-03T17:40:49.753870 #1] INFO -- : > rm -fr /var/run/postgresql
I, [2020-07-03T17:40:49.756586 #1] INFO -- :
I, [2020-07-03T17:40:49.756966 #1] INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2020-07-03T17:40:49.759345 #1] INFO -- :
I, [2020-07-03T17:40:49.759525 #1] INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2020/07/03 17:40:49 socat[1570] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): 没有那个文件或目录
I, [2020-07-03T17:40:49.764619 #1] INFO -- :
I, [2020-07-03T17:40:49.764790 #1] INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2020-07-03T17:40:49.768012 #1] INFO -- :
I, [2020-07-03T17:40:49.768201 #1] INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2020-07-03T17:40:49.771186 #1] INFO -- :
I, [2020-07-03T17:40:49.771329 #1] INFO -- : > mkdir -p /shared/postgres_run/9.5-main.pg_stat_tmp
I, [2020-07-03T17:40:49.773782 #1] INFO -- :
I, [2020-07-03T17:40:49.774066 #1] INFO -- : > chown postgres:postgres /shared/postgres_run/9.5-main.pg_stat_tmp
I, [2020-07-03T17:40:49.776490 #1] INFO -- :
I, [2020-07-03T17:40:49.782041 #1] INFO -- : 文件 > /etc/service/postgres/run chmod: +x chown:
I, [2020-07-03T17:40:49.788039 #1] INFO -- : 文件 > /etc/runit/3.d/99-postgres chmod: +x chown:
I, [2020-07-03T17:40:49.788568 #1] INFO -- : > chown -R root /var/lib/postgresql/9.5/main
I, [2020-07-03T17:40:49.799608 #1] INFO -- :
I, [2020-07-03T17:40:49.799833 #1] INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/9.5/bin/initdb -D /shared/postgres_data || exit 0
I, [2020-07-03T17:40:49.802712 #1] INFO -- :
I, [2020-07-03T17:40:49.802859 #1] INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2020-07-03T17:40:49.823259 #1] INFO -- :
I, [2020-07-03T17:40:49.823552 #1] INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2020-07-03T17:40:49.827629 #1] INFO -- :
I, [2020-07-03T17:40:49.828112 #1] INFO -- : 在 /etc/postgresql/9.5/main/postgresql.conf 中将 data_directory = '/var/lib/postgresql/9.5/main' 替换为 data_directory = '/shared/postgres_data'
I, [2020-07-03T17:40:49.828954 #1] INFO -- : 在 /etc/postgresql/9.5/main/postgresql.conf 中将 (?-mix:#?listen_addresses *=.*) 替换为 listen_addresses = '*'
I, [2020-07-03T17:40:49.829559 #1] INFO -- : 在 /etc/postgresql/9.5/main/postgresql.conf 中将 (?-mix:#?synchronous_commit *=.*) 替换为 synchronous_commit = $db_synchronous_commit
I, [2020-07-03T17:40:49.830168 #1] INFO -- : 在 /etc/postgresql/9.5/main/postgresql.conf 中将 (?-mix:#?shared_buffers *=.*) 替换为 shared_buffers = $db_shared_buffers
I, [2020-07-03T17:40:49.830753 #1] INFO -- : 在 /etc/postgresql/9.5/main/postgresql.conf 中将 (?-mix:#?work_mem *=.*) 替换为 work_mem = $db_work_mem
I, [2020-07-03T17:40:49.831385 #1] INFO -- : 在 /etc/postgresql/9.5/main/postgresql.conf 中将 (?-mix:#?default_text_search_config *=.*) 替换为 default_text_search_config = '$db_default_text_search_config'
I, [2020-07-03T17:40:49.831981 #1] INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2020-07-03T17:40:49.835928 #1] INFO -- :
I, [2020-07-03T17:40:49.836456 #1] INFO -- : 在 /etc/postgresql/9.5/main/postgresql.conf 中将 (?-mix:#?max_wal_senders *=.*) 替换为 max_wal_senders = $db_max_wal_senders
I, [2020-07-03T17:40:49.837120 #1] INFO -- : 在 /etc/postgresql/9.5/main/postgresql.conf 中将 (?-mix:#?wal_level *=.*) 替换为 wal_level = $db_wal_level
I, [2020-07-03T17:40:49.837800 #1] INFO -- : 在 /etc/postgresql/9.5/main/postgresql.conf 中将 (?-mix:#?checkpoint_segments *=.*) 替换为 checkpoint_segments = $db_checkpoint_segments
I, [2020-07-03T17:40:49.838367 #1] INFO -- : 在 /etc/postgresql/9.5/main/postgresql.conf 中将 (?-mix:#?logging_collector *=.*) 替换为 logging_collector = $db_logging_collector
I, [2020-07-03T17:40:49.838967 #1] INFO -- : 在 /etc/postgresql/9.5/main/postgresql.conf 中将 (?-mix:#?log_min_duration_statement *=.*) 替换为 log_min_duration_statement = $db_log_min_duration_statement
I, [2020-07-03T17:40:49.839599 #1] INFO -- : 在 /etc/postgresql/9.5/main/pg_hba.conf 中将 (?-mix:^#local +replication +postgres +peer$) 替换为 local replication postgres peer
I, [2020-07-03T17:40:49.840164 #1] INFO -- : 在 /etc/postgresql/9.5/main/pg_hba.conf 中将 (?-mix:^host.*all.*all.*127.*$) 替换为 host all all 0.0.0.0/0 md5
I, [2020-07-03T17:40:49.840674 #1] INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/9.5/bin/postmaster -D /etc/postgresql/9.5/main
I, [2020-07-03T17:40:49.843014 #1] INFO -- : > sleep 5
2020-07-03 17:40:49.929 UTC [1589] LOG: 数据库系统在 2020-07-03 17:35:44 UTC 已关闭
2020-07-03 17:40:49.935 UTC [1589] LOG: 已启用 MultiXact 成员回绕保护
2020-07-03 17:40:49.939 UTC [1593] LOG: 自动 vacuum 启动器已启动
2020-07-03 17:40:49.939 UTC [1586] LOG: 数据库系统已准备好接受连接
I, [2020-07-03T17:40:54.846567 #1] INFO -- :
I, [2020-07-03T17:40:54.847806 #1] INFO -- : > su postgres -c 'createdb discourse' || true
createdb:错误:无法连接到数据库 template1:无法连接到服务器:没有那个文件或目录
服务器是否在本地运行并接受
通过 Unix 域套接字 "/var/run/postgresql/.s.PGSQL.5432" 的连接?
I, [2020-07-03T17:40:54.926943 #1] INFO -- :
I, [2020-07-03T17:40:54.927231 #1] INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
psql:错误:无法连接到服务器:无法连接到服务器:没有那个文件或目录
服务器是否在本地运行并接受
通过 Unix 域套接字 "/var/run/postgresql/.s.PGSQL.5432" 的连接?
I, [2020-07-03T17:40:55.015057 #1] INFO -- :
I, [2020-07-03T17:40:55.015594 #1] INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
psql:错误:无法连接到服务器:无法连接到服务器:没有那个文件或目录
服务器是否在本地运行并接受
通过 Unix 域套接字 "/var/run/postgresql/.s.PGSQL.5432" 的连接?
I, [2020-07-03T17:40:55.091507 #1] INFO -- :
I, [2020-07-03T17:40:55.091839 #1] INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
psql:错误:无法连接到服务器:无法连接到服务器:没有那个文件或目录
服务器是否在本地运行并接受
通过 Unix 域套接字 "/var/run/postgresql/.s.PGSQL.5432" 的连接?
I, [2020-07-03T17:40:55.167810 #1] INFO -- :
I, [2020-07-03T17:40:55.168235 #1] INFO -- : 终止异步进程
I, [2020-07-03T17:40:55.168298 #1] INFO -- : 向 HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/9.5/bin/postmaster -D /etc/postgresql/9.5/main 的 pid: 1586 发送 INT
2020-07-03 17:40:55.168 UTC [1586] LOG: 收到快速关闭请求
2020-07-03 17:40:55.168 UTC [1586] LOG: 中止任何活动事务
2020-07-03 17:40:55.170 UTC [1593] LOG: 自动 vacuum 启动器正在关闭
2020-07-03 17:40:55.172 UTC [1590] LOG: 正在关闭
2020-07-03 17:40:55.189 UTC [1590] LOG: 数据库系统已关闭
失败
--------------------
Pups::ExecError: su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' 失败,返回 #<Process::Status: pid 1618 exit 2>
失败位置:/pups/lib/pups/exec_command.rb:112:in `spawn'
执行失败,参数为 "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
a10b0d1db8256d70432e08508f453835a4bd7dce8f4ac601b6be1031bb3ce01b
** 引导失败 ** 请向上滚动查看更早的错误消息,可能不止一条。
./discourse-doctor 可能有助于诊断问题。
root@foro:/var/discourse#
在尝试了所有经典技巧(包括「关机再开机」)后,我现在有点不知所措。我不明白为什么它无法访问数据库 ![]()