nextcloud 从 postgresql 数据库迁移到 mariadb/mysql

分享讨论IT相关的内容
回复
头像
BobMaster
锋芒初露
锋芒初露
帖子: 1207
注册时间: 2020年 12月 7日 08:05
来自: 神秘的东方
我的状态: 🎯
为圈友点赞: 349 次
被赞次数: 189 次
联系:

nextcloud 从 postgresql 数据库迁移到 mariadb/mysql

帖子 BobMaster »

最近有一个需求,需要将nextcloud上的数据从s3对象存储切换为使用本地存储。
nextcloud-S3-local-S3-migration 项目只支持mysql/mariadb,因此我打算先将数据库切换为mariadb。
切换的方法很简单,使用官方的occ指令即可实现。
文档地址: https://docs.nextcloud.com/server/lates ... conversion

在切换之前,我们先在mariadb中创建nextcloud数据库和nextcloud用户。
创建数据库:

代码: 全选

CREATE DATABASE nextcloud
CHARACTER SET = 'utf8mb4'
COLLATE = 'utf8mb4_unicode_520_ci';
创建nextcloud用户,并赋予权限:

代码: 全选

create user nextcloud@localhost identified by '设置一个数据库密码';
grant all privileges on nextcloud.* to nextcloud@localhost;
flush privileges;
quit;
在转换前,推荐你备份一下原来的postgresql数据库

代码: 全选

sudo -u postgres pg_dump nextcloud > nextcloud.db.pg.sql
再做几个转换前的准备操作

代码: 全选

sudo -u www-data php occ maintenance:mode --on
sudo -u www-data php occ config:system:set mysql.utf8mb4 --type boolean --value="true"
sudo -u www-data php occ maintenance:repair
接着使用下面的occ指令转换数据库

代码: 全选

php occ db:convert-type --all-apps mysql oc_mysql_user 127.0.0.1 new_db_name
比如我使用的是

代码: 全选

sudo -u www-data php occ db:convert-type --password="你设置的数据库密码" --clear-schema --all-apps mysql nextcloud 127.0.0.1 nextcloud
在提示Continue with the conversion?时,输入yes,然后回车
转换结束后,关闭维护模式

代码: 全选

sudo -u www-data php occ maintenance:mode --off
可以进 https://{server_url}/settings/admin/serverinfo 看到转换后的数据库类型确实为mysql,说明成功了
图片

Reference:
Invalid datetime format: 1366 Incorrect string value
人生如音乐,欢乐且自由
回复
  • 猜你喜欢
    回复总数
    阅读次数
    最新帖子
  • nextcloud 将 primary storage 从s3对象存储修改为本地存储
    BobMaster » » 位于 玩机交流
    1 回复总数
    345 阅读次数
    最新帖子 ejsoon
  • mariadb 将 character_set_client 从 latin1 修改为 utf8mb4
    BobMaster » » 位于 玩机交流
    1 回复总数
    229 阅读次数
    最新帖子 ejsoon

在线用户

正浏览此版面之用户: 没有注册用户 和 9 访客