MySQL Deployment with `nifectl`

This section explains how to deploy a MySQL database using the nifectl CLI.

Initialize the MySQL Application#

Use the nifectl init command to register your MySQL application and generate the required nife.toml file.

nifectl init --name your-database-name --builtin mysql --org your-organization-name --volume-size 1 --volume-path /var/lib/mysql --port 3306 --external 3306 --replica 1 --routing-policy Latency --request-memory 12 --request-cpu 0.5 --limit-memory 12 --limit-cpu 1

Explanation of Flags#

  • --name: A unique name for your application.
  • --builtin=mysql: Specifies the use of MySQL as the runtime.
  • --org: The organization name that will own the app.
  • --volume-size: Size of the persistent volume in GB.
  • --volume-path: Filesystem path inside the container (/var/lib/mysql for MySQL).
  • --port and --external: Internal and external port (default MySQL port is 3306).
  • --request-* and --limit-*: Resource configuration for CPU and memory.
  • --replica: Number of instances (replicas) to be deployed.
  • --routing-policy: Defines how traffic is routed (e.g., Latency, Geolocation).

Deploy the MySQL Application#

Once the application is initialized, deploy it with the required environment variable using the following command:

nifectl deploy -e MYSQL_ROOT_PASSWORD=your-secret-password
  • Replace your-secret-password with a secure password of your choice.
  • MYSQL_ROOT_PASSWORD is required by MySQL to initialize the root user.