我正在使用 Ubuntu 18.04.4 LTS,最近从 Firebird 2.5 升级到 Firebird 3.0。
升级之前,我使用以下 unzip&replace 命令恢复本地数据库:
zcat /var/www/temp/<database name><backup timestamp>.gbak.gz | gbak -rep -v stdin /database/<database name>.fdb -user <username> -pass <password>
这一步就完成了整个工作,我喜欢这种东西。然而,在升级 Firebird 后,我发现 FlameRobin(版本 0.9.2.1850)无法连接到更新的数据库。错误消息(帮助其他可能正在谷歌搜索的人)是:
引擎代码:335544344
引擎消息:对文件“/database/.fdb”进行“打开”操作时发生 I/O 错误
尝试打开文件时
出错 权限被拒绝。
我的 CodeIgniter 项目抱怨:
无法使用提供的设置连接到数据库服务器。
为了解决这个问题,我将<database name>.fdb
文件的所有者和组更改为firebird
,然后firebird
一切都很顺利。但是我分两步来做这件事……呃,很蹩脚吧?……我知道。
所以我想知道我是否可以执行类似更改文件夹权限和所有权与上面的 unzip&replace 命令在同一行?
我的系统管理能力并不十分出色,所以我不敢尝试得太疯狂,但我认为对于那些有经验的人来说这应该是一项相对基本的任务。
ps 理想情况下,我希望每次恢复时都不需要更改所有者设置,所以如果有办法做到这一点 - 那就更好了。
答案1
参考
我添加了:&& sudo chown firebird:firebird /database/<database name>.fdb
到我的命令中以形成:
zcat /var/www/temp/<database name><backup timestamp>.gbak.gz | gbak -rep -v stdin /database/<database name>.fdb -user <username> -pass <password> && sudo chown firebird:firebird /database/<database name>.fdb
这成功地在一行中更改了所有权设置。
如果有更好的做法,我很乐意听到它并说明原因。