MySQL
MySQL can be automatically configured for your dev environment by Devbox via the built-in MySQL Plugin. This plugin will activate automatically when you install MySQL using devbox add mysql80
or devbox add mysql57
.
Adding MySQL to your Shell
devbox add mysql80
, or in your devbox.json
add
"packages": [
"mysql80@latest"
]
You can also install Mysql 5.7 by using devbox add mysql57
You can manually add the MySQL Plugin to your devbox.json
by adding it to your include
list:
"include": [
"plugin:mysql"
]
This will install the latest version of MySQL. You can find other installable versions of MySQL by running devbox search mysql80
or devbox search mysql57
. You can also view the available versions on Nixhub
MySQL Plugin Support
Devbox will automatically create the following configuration when you run devbox add mysql80
or devbox add mysql57
. You can view the full configuration by running devbox info mysql
Services
- mysql
You can use devbox services up|stop mysql
to start or stop the MySQL Server.
Environment Variables
MYSQL_BASEDIR=.devbox/nix/profile/default
MYSQL_HOME=./.devbox/virtenv/mysql/run
MYSQL_DATADIR=./.devbox/virtenv/mysql/data
MYSQL_UNIX_PORT=./.devbox/virtenv/mysql/run/mysql.sock
MYSQL_PID_FILE=./.devbox/mysql/run/mysql.pid
Files
The plugin will also create the following helper files in your project's .devbox/virtenv
folder:
- mysql/flake.nix
- mysql/setup_db.sh
- mysql/process-compose.yaml
These files are used to setup your database and service, and should not be modified
Notes
- This plugin wraps mysqld to work in your local project. For more information, see the
flake.nix
created in your.devbox/virtenv/mysql
folder. - This plugin will create a new database for your project in
MYSQL_DATADIR
if one doesn't exist on shell init. - You can use
mysqld
to manually start the server, andmysqladmin -u root shutdown
to manually stop it .sock
filepath can only be maximum 100 characters long. You can point to a different path by setting theMYSQL_UNIX_PORT
env variable in yourdevbox.json
as follows:
"env": {
"MYSQL_UNIX_PORT": "/<some-other-path>/mysql.sock"
}
Disabling the MySQL PLugin
You can disable the built-in MySQL plugin using devbox add mysql80 --disable-plugin
, or by setting the disable_plugin
field to true
in your package definition:
{
"packages": {
"mysql80": {
"version": "latest",
"disable_plugin": true
}
}
}