# # user database
## sqlite (preferred)
in the spirit of minimalism, the recommended database technology to use here is sqlite. sqlite databases exist as a single, atomic file, and are a good use for light applications, with low to medium concurrent loads.
it also allows for greater flexibility, and segregation for your application's data: you can create as many sqlite databases as you need.
- [documentation](https://sqlite.org/docs.html)
- [sqlite cli](https://sqlite.org/cli.html)
## optional
please contact creme (via matrix or email) to request a database with access.
### mysql
- [documentation](https://dev.mysql.com/doc/mysql-getting-started/en/)
on `localhost` port `3306`
- database name: `username`
- database user: `username`
- password: *please see in your database readme email*
*do not store password change to history:*
*`export MYSQL_HISTFILE=/dev/null`*
connecting to mysql:
`mysql -u username -p`
change your password:
`SET PASSWORD = PASSWORD('your-password-here');`
use database:
`use username`
#### database backup & restore
simple backup:
`mysqldump "$USER" -p > ~/backup/dump_"$USER".sql`
and restore:
`mysql -p -u "$USER" < ~/backup/dump_"$USER".sql`
you can also use our `envs_mysql.sh` - backup and restore script.
the backup files will stored under `~/backup/`.
show `envs_mysql.sh -h` for more informations
```bash
usage: envs_mysql.sh
backup - backup your default user database
backup - backup database
restore - restore your latest user database
restore - restore database
```
with cron you can also do your backup regularly at a certain time.
see [help -> cron](https://help.envs.net/help/#croncrontab) for a example.