You can define multiple MySQL databases within one service. To do so, define multiple schemas
in your service configuration. Note that this is possible on version 10.0
or later.
You can also specify multiple endpoints
for permissions. If neither schemas
nor endpoints
is included, it’s equivalent to the following default:
.platform/services.yaml
configuration:
schemas:
- main
endpoints:
mysql:
default_schema: main
privileges:
main: admin
If either schemas
or endpoints
are defined, no default is applied and you have to specify the full configuration.
The following configuration example creates a single MariaDB service named db with two databases, main and legacy. Access to the database is defined through three endpoints:
- admin has full access to both databases.
- reporter has SELECT query access to main but no access to legacy.
- importer has SELECT/INSERT/UPDATE/DELETE (but not DDL) access to legacy but no access to main.
.platform/services.yaml
db:
type: mariadb:10.5
disk: 2048
configuration:
schemas:
- main
- legacy
endpoints:
admin:
default_schema: main
privileges:
main: admin
legacy: admin
reporter:
privileges:
main: ro
importer:
default_schema: legacy
privileges:
legacy: rw
For further details please check the documentation on Multiple databases.