我正在使用 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 命令的同一行中执行更改文件夹权限和所有权之类的操作?
我的系统管理员 fu 不是很出色,所以我不敢太疯狂地尝试,但我认为这对于有这方面经验的人来说应该是一个相对基本的任务。
ps 理想情况下,如果我不必在每次还原时更改所有者设置,我会很高兴,所以如果有办法做到这一点 - 那会更好。
参考后
哪个更好:使用 ; 或 && 在一行中执行多个命令?
我
&& sudo chown firebird:firebird /database/<database name>.fdb
在我的命令中添加了:这成功地在一行中更改了所有权设置。
如果有更好的做法,我很高兴在这里以及为什么。