使用python连接到SNAP(Nextcloud)中的MySQL

jxct1oxe  于 2023-01-29  发布在  Mysql
关注(0)|答案(1)|浏览(235)

Ubuntu服务器20.04和Nextcloud服务器安装了快照(https://github.com/nextcloud-snap/nextcloud-snap)。
我需要连接到Snap内部的Nextcloud MySQL数据库,并对一些表进行SELECT,但我不知道如何使用Python进行此操作。
如果我使用标准CLI实用程序,一切正常。

sudo nextcloud.mysql-client -S /tmp/sockets/mysql.sock

但我不明白如何做同样的事情与python和专门的MySQL用户。
我试过使用'subprocess.check_output'路由,但结果证明这是一个糟糕的主意...
有什么建议吗?

5f0d552i

5f0d552i1#

快照将/tmp目录存储在以下位置:

/tmp/snap-private-tmp/

所以你要找的套接字实际上在下面:

/tmp/snap-private-tmp/snap.nextcloud/tmp/mysql.sock

或在22.04 LTS上,mysqlx.sock
然而,由于Snap沙箱的工作方式,您实际上无法使用此套接字文件连接到Nextcloud示例。

mysql -S ./mysqlx.sock
ERROR:

我认为最好的解决方法可能是:
1.重新构建nextcloud-snap以使用TCP 127.0.0.1:3306访问MySQL
1.从基于快照的部署迁移到传统部署。
就我个人而言,当我大约25年前第一次开始使用Linux时,这本书是我最早阅读并真正喜欢的书之一:

注意副标题:让简单的事情变得简单,让困难的事情变得可能
在我使用snap的有限经验中,它总是使容易的事情变得困难,而且它完全不同于我对Linux的其他理解,因为它有自己的极端专有的方式。
如果我必须处理一个容器,docker远没有那么麻烦,我预计Ubuntu LTS作为一个公共服务器标准最终会被他们在snap上的示例所撤销。

相关问题