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