Vaultwarden迁移至外部Mysql
Vault Warden用的时间长了,数据也多了,反正闲着也是闲着,索性把数据也一并迁移到Mysql上。
以下操作均来自于官方Wiki
1.导出sqlite中的原有数据
sqlite3 db.sqlite3 .dump | grep "^INSERT INTO" | grep -v "__diesel_schema_migrations" > sqlitedump.sql ; echo -ne "SET FOREIGN_KEY_CHECKS=0;\n$(cat sqlitedump.sql)" > mysqldump.sql
2.创建Mysql数据库及用户
CREATE DATABASE vaultwarden CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'vaultwarden'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL ON `vaultwarden`.* TO 'vaultwarden'@'1.1.1.1';
FLUSH PRIVILEGES;
3.导入数据库
cat mysqldump.sql | mysql -u root -p vaultwarden
4.配置vaultwarden连接Mysql
在环境变量中加入DATABASE_URL=mysql://vaultwarden:[email protected]/vaultwarden
即可。
这里需要注意的是,如果密码中包含以下字符的话,需要进行urlencode,
例如密码为1!23456
,database_url中应写为1%2123456
。
! | # | $ | % | & | ' | ( | ) | * | + | , | / | : | ; | = | ? | @ | [ | ] |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
%21 | %23 | %24 | %25 | %26 | %27 | %28 | %29 | %2A | %2B | %2C | %2F | %3A | %3B | %3D | %3F | %40 | %5B | %5D |