前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nextcloud -4- 连接 MariaDB

Nextcloud -4- 连接 MariaDB

作者头像
为为为什么
发布2022-08-06 16:19:37
9810
发布2022-08-06 16:19:37
举报
文章被收录于专栏:又见苍岚又见苍岚

Nextcloud 可以连接本地数据库,对于系统维护有很多好处,本文记录 nextcloud 连接mariadb数据库的方法。

操作流程

mariadb 开源高效,我们尝试使用 mariadb 作为数据库

创建数据库容器
  • 使用命令创建容器
代码语言:javascript
复制
docker run -it -d --name nextcloud_db -e MYSQL_ROOT_PASSWORD=<YOUR_PASSWORD> -p 3306:3306 --restart=always mariadb
4047 InnoDB 错误
代码语言:javascript
复制
Error while trying to initialise the database: An exception occurred while executing a query: SQLSTATE[HY000]: General error: 4047 InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.
解决方案一
  • 使用 mysql 代替 mariadb
解决方案二
解决方案三(临时方案)
  • 需要修改 mariadb,关闭一个只读的设置
代码语言:javascript
复制
docker exec -it mysql mysql -u root -p
# 输入创建容器时设定的密码
SET GLOBAL innodb_read_only_compressed=OFF;

  • 该解决方案会在容器重启后失效
解决方案四(最优方案)
  • 创建容器后进入容器
代码语言:javascript
复制
docker exec -it nextcloud_db bash
  • 修改 /etc/mysql/my.cnf 文件
  • 添加内容:
代码语言:javascript
复制
[mariadbd]
innodb_read_only_compressed=0
创建 nextcloud-fpm版本容器
代码语言:javascript
复制
docker run -it -d --name=nextcloud --link nextcloud_db:db --privileged -p 8080:80 -p 8443:443 --restart=always nextcloud
  • 登录 宿主IP:8080 可以访问 nextcloud 配置界面,填入管理员账户信息和数据库信息
  • 填好后点击完成配置,等待一会nextcloud 完成初始化
验证数据库连接是否成功
  • 进入数据库,查看数据库列表
代码语言:javascript
复制
docker exec -it nextcloud_db mysql -u root -p
Enter password:
show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| nextcloud_db       |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.003 sec)

  • 可以看到 nextcloud_db 被创建,说明链接成功

参考资料

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 操作流程
    • 创建数据库容器
      • 4047 InnoDB 错误
        • 解决方案一
        • 解决方案二
        • 解决方案三(临时方案)
        • 解决方案四(最优方案)
      • 创建 nextcloud-fpm版本容器
        • 验证数据库连接是否成功
        • 参考资料
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档