postgresql重装之惑

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
头像
百草谷居士
帖子: 3939
注册时间: 2006-02-10 16:36
系统: debian12/xubuntu2404

postgresql重装之惑

#1

帖子 百草谷居士 » 2019-08-28 13:37

这事儿已经过去一段时间
我在ubuntu上安装的postgresql,通过修改配置文件,改变了数据库的默认存储位置。系统两个分区,一个/根分区,一个/home分区。修改配置后数据库默认存放在/home分区,一切都好,我建立了一个数据库,并且储存了数据。但是有一天我重装了系统,也就是说格式化了/根分区,然后重装了postgresql,postgresql无法正常启动,按照原来的方法修改了配置文件,还是无法启动。折腾了几次,无果。最后卸载了postgresql,并且删除了存储数据库的文件夹。

现在想起来这个事情,这种情况是什么原因造成的?对于postgresql来说,这种有数据库物理文件夹的,如果直接挂载到数据库系统上?能不能像mssql那样挂载已存在的数据库。当然mssql是文件,postgresql是文件夹。
debian 12.5 / xubuntu 24.04

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
onlylove
论坛版主
帖子: 5260
注册时间: 2007-01-14 16:23

Re: postgresql重装之惑

#2

帖子 onlylove » 2019-08-28 13:56

apparmor?
头像
独行猫儿
帖子: 202
注册时间: 2009-02-25 18:07

Re: postgresql重装之惑

#3

帖子 独行猫儿 » 2019-08-28 14:02

首先你得确定重装系统后再安装的pgsql和之前的版本是100%一模一样的,而且文件与文件夹权限能够对接。
事实上数据库系统不希望以文件或文件夹方式备份或迁移数据库,最靠谱的方式还是用导出的方式导出备份文件。
<!--不再参与任何形式的讨论-->
头像
qy117121
论坛版主
帖子: 50559
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: postgresql重装之惑

#4

帖子 qy117121 » 2019-08-28 14:33

我用docker 安装的postgresql 删除数据库文件夹后把之前压缩备件的文件夹恢复过来都不行
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 chuan@ubuntu.org.cn
头像
astolia
论坛版主
帖子: 6570
注册时间: 2008-09-18 13:11

Re: postgresql重装之惑

#5

帖子 astolia » 2019-08-29 0:12

启动不成功日志都会有报错信息,为什么不去看一下?
头像
百草谷居士
帖子: 3939
注册时间: 2006-02-10 16:36
系统: debian12/xubuntu2404

Re: postgresql重装之惑

#6

帖子 百草谷居士 » 2019-08-29 8:19

已经无从验证了。我只是想知道,对于postgresql来说,能不能像mssql那样直接挂载原有的数据库文件。甚至直接复制数据库文件夹到其他服务器上,能不能挂载上
debian 12.5 / xubuntu 24.04

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
头像
oneleaf
论坛管理员
帖子: 10448
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04

Re: postgresql重装之惑

#7

帖子 oneleaf » 2019-08-29 10:45

头像
百草谷居士
帖子: 3939
注册时间: 2006-02-10 16:36
系统: debian12/xubuntu2404

Re: postgresql重装之惑

#8

帖子 百草谷居士 » 2019-08-29 13:43

谢谢版主!有空再装上postgresql
debian 12.5 / xubuntu 24.04

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
头像
qy117121
论坛版主
帖子: 50559
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: postgresql重装之惑

#9

帖子 qy117121 » 2019-08-29 15:14

又试了下,把docker生成的数据库打包到了另一台电脑 ,启动后又是正常的
不明白之前那次为什么失败了,弄的我扔了点数据
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 chuan@ubuntu.org.cn
头像
独行猫儿
帖子: 202
注册时间: 2009-02-25 18:07

Re: postgresql重装之惑

#10

帖子 独行猫儿 » 2019-08-30 1:15

qy117121 写了: 2019-08-29 15:14 又试了下,把docker生成的数据库打包到了另一台电脑 ,启动后又是正常的
不明白之前那次为什么失败了,弄的我扔了点数据
你确定数据库引擎的大中小三个版本号是相同的?
<!--不再参与任何形式的讨论-->
头像
百草谷居士
帖子: 3939
注册时间: 2006-02-10 16:36
系统: debian12/xubuntu2404

Re: postgresql重装之惑

#11

帖子 百草谷居士 » 2019-08-30 9:00

另外在网上看到更改数据库默认存储位置的文章,除了修改配置文件外,还把原来的默认数据库存储文件夹复制过去。
如果不想复制文件夹,是不是要用initdb工具初始化?初始化和用户权限有什么关系,包括操作系统用户,和数据库用户
debian 12.5 / xubuntu 24.04

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
头像
astolia
论坛版主
帖子: 6570
注册时间: 2008-09-18 13:11

Re: postgresql重装之惑

#12

帖子 astolia » 2019-08-30 15:47

真亏你能稀里糊涂地用了这么久。创建数据库的pg_createcluster和initdb有哪些参数有什么作用就没想过查一下?
我严重怀疑你重装出问题就是安装时默认创建的postgres用户的uid变了
头像
独行猫儿
帖子: 202
注册时间: 2009-02-25 18:07

Re: postgresql重装之惑

#13

帖子 独行猫儿 » 2019-08-30 16:51

astolia 写了: 2019-08-30 15:47 真亏你能稀里糊涂地用了这么久。创建数据库的pg_createcluster和initdb有哪些参数有什么作用就没想过查一下?
我严重怀疑你重装出问题就是安装时默认创建的postgres用户的uid变了
稀里糊涂是中国程序员的常态。
能用,不知道为什么;
不能用,也不知道为什么;
<!--不再参与任何形式的讨论-->
头像
百草谷居士
帖子: 3939
注册时间: 2006-02-10 16:36
系统: debian12/xubuntu2404

Re: postgresql重装之惑

#14

帖子 百草谷居士 » 2019-08-30 19:33

从未成功使用过postgresql,只是成功安装和导入了部分数据。安装包括自定义数据库存储位置都是在网上找的资料。就连pg_createcluster和initdb两个命令分别作用是什么,都不知道。不知道,真的不知道
debian 12.5 / xubuntu 24.04

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
头像
百草谷居士
帖子: 3939
注册时间: 2006-02-10 16:36
系统: debian12/xubuntu2404

Re: postgresql重装之惑

#15

帖子 百草谷居士 » 2019-08-31 8:30

稍微明白了一些。pg_createcluster用来建立一个服务,在同一台电脑上可以启动多个postgresql服务。而initdb是要初始化一个文件夹用来存放数据库文件,所谓数据库簇集。数据库用户依赖于数据库簇集,数据库用户信息保存在数据库簇集,对本数据库簇集中的数据库权限发生左右。
我在运行initdb时,前面提示成功,最后有一个警告,这个警告似乎和授权认证有关,具体什么意思,麻烦大佬给解释一下。

$ sudo -u postgres /usr/lib/postgresql/11/bin/initdb pgdbs
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "zh_CN.UTF-8".
The default database encoding has accordingly been set to "UTF8".
initdb: could not find suitable text search configuration for locale "zh_CN.UTF-8"
The default text search configuration will be set to "simple".

Data page checksums are disabled.

fixing permissions on existing directory pgdbs ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default timezone ... Asia/Shanghai
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

/usr/lib/postgresql/11/bin/pg_ctl -D pgdbs -l logfile start

-------------------------------------------------------------------------------------------------------------------------------------------------------------
目前的问题是可以使用命令行工具psql连接,但是无法使用pgadmin3或者dbeaver连接
debian 12.5 / xubuntu 24.04

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
回复