-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Using the MySQL Backend
Stephan Tietz edited this page Nov 17, 2019
·
26 revisions
To use the MySQL backend, first ensure you build the binary with MySQL feature enabled.
To run the binary or container ensure the DATABASE_URL
environment variable is set (i.e. DATABASE_URL='mysql://<user>:<password>@mysql/bitwarden
) and ENABLE_DB_WAL
is set to false ENABLE_DB_WAL='false'
.
Connection String Syntax:
DATABASE_URL=mysql://[[user]:[password]@]host[:port][/database]
If your password contains special characters, you will need to use percentage encoding.
{| cellpadding="6px" border=1 style="border:1px solid #C0C0C0; border-collapse:collapse; background-color:white;" class="wikitable"
+Reserved characters after percent-encoding |
---|
[[exclamation mark |
- |
%21 |
} |
A complete list of codes can be found on Wikipedia page for percent encoding
Example using Docker:
# Start a mysql container
docker run --name mysql --net <some-docker-network>\
-e MYSQL_ROOT_PASSWORD=<my-secret-pw>\
-e MYSQL_DATABASE=bitwarden\
-e MYSQL_USER=<bitwarden_user>\
-e MYSQL_PASSWORD=<bitwarden_pw> -d mysql:5.7
# Start bitwarden_rs with MySQL Env Vars set.
docker run -d --name bitwarden --net <some-docker-network>\
-v $(pwd)/bw-data/:/data/ -v <Path to ssl certs>:/ssl/\
-p 443:80 -e ROCKET_TLS='{certs="/ssl/<your ssl cert>",key="/ssl/<your ssl key>"}'\
-e RUST_BACKTRACE=1 -e DATABASE_URL='mysql://<bitwarden_user>:<bitwarden_pw>@mysql/bitwarden'\
-e ADMIN_TOKEN=<some_random_token_as_per_above_explanation>\
-e ENABLE_DB_WAL='false' <you bitwarden_rs image name>
Example using Non-Docker MySQL Server:
Server IP/Port 192.168.1.10:3306 UN: dbuser / PW: P@ssw0rd / DB: Bitwarden
mysql://dbuser:P@[email protected]:3306/bitwarden
- Which container image to use
- Starting a container
- Using Docker Compose
- Using Podman
- Updating the vaultwarden image
- Overview
- Enabling admin page
- SMTP configuration
- Disable registration of new users
- Disable invitations
- Enabling WebSocket notifications
- Enabling Mobile Client push notification
- Enabling SSO support using OpenId Connect
- Other configuration
- Using the MariaDB (MySQL) Backend
- Using the PostgreSQL Backend
- Running without WAL enabled
- Migrating from MariaDB (MySQL) to SQLite
- Hardening Guide
- Password hint display
- Enabling U2F and FIDO2 WebAuthn authentication
- Enabling YubiKey OTP authentication
- Fail2Ban Setup
- Fail2Ban + ModSecurity + Traefik + Docker
- Translating the email templates
- Translating admin page
- Customize Vaultwarden CSS
- Using custom website icons
- Disabling or overriding the Vault interface hosting
- Building binary
- Building your own docker image
- Git hooks
- Differences from the upstream API implementation