前言
同事在部署迁移工具panwei_dtp的过程中报错“Permission denied”,如下:


今天把整个处理过程分享出来,方便大家碰到问题时参考解决!
处理过程
检查权限

可以看到,/root/opt/panwei_dtp_data/deployment/panweidb/bin/psql文件的权限是777,这个权限是在panwei_dtp工具安装过程中由dtp软件授予的,非人工操作。
panwei_dtp工具的安装目录是/root/opt/panwei_dtp_data,检查目录也是有权限的。不管怎么样,先手工授权再重装一下,看看同事的安装步骤。
第一次重新安装panwei_dtp工具
需要以 root 用户身份进行 panwei_dtp 安装。
# chown -R panweidb:panweidb /root/opt/panwei_dtp_data
# chmod -R 755 /root/opt/panwei_dtp_data
-- 先卸载掉panwei_dtp工具
# ./panwei_dtp_uninstall.sh
-- 重新安装panwei_dtp工具
# ./panwei_dtp_install.sh


可以看到,依然提示权限不足,但是这次是提示/root/opt/panwei_dtp_data/deployment/panweidb/bin/pw_initdb文件权限不足!
第二次重新安装panwei_dtp工具
跟同事沟通得知,主机上是有个磐维数据库,而且这个磐维数据库是做目标库用的,后续要通过panwei_dtp工具把mysql库迁移到这个磐维数据库中。那么,重新调整安装panwei_dtp过程中输入的参数,让dtp自己安装磐维配置库,再准备第二次重新安装panwei_dtp工具吧。
由于当时没有截图,下图用红色的箭头和文字说明。

安装日志如下:
…

报错依旧,仍然提示/root/opt/panwei_dtp_data/deployment/panweidb/bin/pw_initdb文件权限不足!实际上权限是存在的,而且pw_initdb也是可以用的。

安装到这里不禁开始怀疑:是不是panwei_dtp工具的安装目录第一层必须是panweidb:panweidb权限呢?既然有了思路,那就再重新建个目录试试吧!
第三次重新安装panwei_dtp工具
--新创建/panwei_dtp_data目录并授权
# mkdir /panwei_dtp_data
# chown panweidb:panweidb /panwei_dtp_data
-- 先卸载掉panwei_dtp工具
# ./panwei_dtp_uninstall.sh
-- 重新安装panwei_dtp工具
# ./panwei_dtp_install.sh
查看安装日志:



至此,panwei_dtp工具安装成功了。
检查服务状态
--查看panwei_dtp 服务:
systemctl status panwei_dtp
--查看配置库服务:
systemctl status panweidb
--查看incremental服务:
systemctl status incremental

panwei_dtp工具需要license文件,申请license并上传文件后服务即可正常。

配置库服务正常。

incremental服务正常。
总结
本次panwei_dtp工具安装异常的原因主要是:panwei_dtp工具要求安装用户(本例中用的panweidb用户,这个用户是在./panwei_dtp_install.sh执行过程中指定的,非root用户)对安装目录的第一层有读写权限,重新使用一个独立目录即可安装成功。




