MariaDB is a very common database server which is EXTREMELY similar to MySQL but has a guarantee of being open source.
- Supported versions
- Patch versions
- Getting information
- Additional Reading
Not officially supported!
While we allow users to specify patch versions for this service they are not officially supported so if you use one YMMV.
To use a patch version you can do something like this:
services: my-service: type: mariadb:10.2.21
But make sure you use one of the available patch tags for the underlying image we are using.
Here are the configuration options, set to the default values, for this service. If you are unsure about where this goes or what this means we highly recommend scanning the services documentation to get a good handle on how the magicks work.
Be careful when switching database type, version or credentials
You should be careful switching database
In the case of type and version the underlying database files between these things is likely not be compatible. In the case of credentials, these are set when the container is initially created so in order to change them you need to
lando destroy && lando start. Note that
lando destroy will delete all the data in your database.
Ignoring this warning can cause your database service to not start correctly!!! You can read more about this here
services: my-service: type: mariadb:10.1 portforward: false creds: user: mariadb password: mariadb database: database config: database: SEE BELOW
portforward will allow you to access this service externally by given you a port directly on your host's
localhost. Note that
portforward can be set to either
true or a specific
port but we highly recommend you set it to
true unless you have pretty good knowledge of how port assignment works or you have a very compelling reason for needing a locked down port.
portforward: true will prevent inevitable port collisions and provide greater reliability and stability across Lando apps. That said, one downside of
portforward: true is that Docker will assign a different port every time you restart your application. You can read more about accessing services externally over here.
services: my-service: type: mariadb portforward: true
services: my-service: type: mariadb portforward: 3600
You can also configure the default
password. However, it is very important to note that these things get set the FIRST TIME YOU START the service and ONLY THE FIRST TIME.
This means that if you change any of the
creds you need to
lando destroy and then
lando start the service for the changes to take effect. This stands in contrast to the normal
lando rebuild method to change config and is a consequence of persisting the database's data directory between rebuilds.
services: my-service: type: mariadb creds: user: mariadb -> myuser password: mariadb -> mypassword database: database -> db7
lando destroy -y && lando start
Also note that by default all
mariadb services have a passwordless
root user. DO NOT ALTER THE PASSWORD OF THE ROOT USER.
If you do this you must use a file that exists inside your applicaton and express it relative to your project root as below.
A hypothetical project
./ |-- config |-- my-custom.cnf |-- .lando.yml
Landofile's mariadb config
services: my-service: type: mariadb config: database: config/my-custom.cnf
If you are interested in a working example of this service that we test on every Lando build then check out https://github.com/lando/lando/tree/master/examples/mariadb
- Updating your Landofiles to 3.0.0-rc.2+
- Accessing Your Services Externally
- Accessing Lando from Other Devices
- Exporting Databases
- Importing Databases
- Killer D8 Workflow with Platform.sh
- Lando + PhpStorm + Xdebug
- Offline Development
- Using $LANDO_INFO
- Using NodeJS Frontend Tooling
- Using Lando in Visual Studio Code
- Climbing a mountain for love
- SSH Keys
- Shared Files
- Global Config
- DNS Rebinding Protection
- File Uploads on Windows
- File Syncing Stalled
- Running VB and HyperV
- Running behind a proxy
- Switching Database Config