MySQL Config Generator

Generates the [mysqld] section of a my.cnf file, covering server-id, bind-address, innodb_buffer_pool_size, max_connections, character-set-server, and an optional binary logging block (log_bin, binlog_format, expire_logs_days), entirely in your browser. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-07-26

Overview

Introduction

The [mysqld] section of my.cnf is where the settings that actually matter for a running MySQL instance live, server-id, buffer pool sizing, connection limits, character set, and whether binary logging is on, each with its own exact directive name and syntax.

This tool generates that section from a form, including an optional binary logging block, so you get correctly named and formatted directives without cross-referencing MySQL's reference manual for each one.

What Is MySQL Config Generator?

A generator for the [mysqld] section of my.cnf covering server-id, bind-address, innodb_buffer_pool_size, max_connections, and character-set-server.

It also includes a toggle for binary logging, which when enabled adds log_bin, binlog_format, and expire_logs_days, the settings needed for replication or point-in-time recovery.

How MySQL Config Generator Works

Each field maps to one my.cnf directive under the [mysqld] header; numeric fields (server-id, max_connections, expire_logs_days) are validated as integers before being emitted.

When binary logging is toggled on, the generator appends a clearly commented block enabling log_bin with a mysql-bin base name, the chosen binlog_format, and the expire_logs_days retention window; when toggled off, none of those directives appear in the output.

When To Use MySQL Config Generator

Use it when provisioning a new MySQL instance and you want a starting my.cnf with the handful of settings almost every deployment needs to set explicitly.

It's also useful when setting up a primary/replica pair and you need a quick reference for the server-id and binlog settings each node needs.

Often used alongside PostgreSQL Config Generator.

Features

Advantages

  • Covers the settings that actually matter for a working, non-default MySQL instance, rather than every one of MySQL's hundreds of system variables.
  • Keeps binary logging settings grouped and clearly commented, and omits them entirely when logging is disabled rather than leaving misleading commented-out lines.
  • Validates that numeric fields are integers before generating output, catching typos before they reach a config file.

Limitations

  • Only covers [mysqld]; it doesn't generate [client], [mysql], or other my.cnf sections.
  • Doesn't calculate a recommended innodb_buffer_pool_size from available system RAM, you supply the value directly.
  • Doesn't model replication-specific settings beyond server-id and binlog basics (e.g. GTIDs, semi-sync replication); use it as a starting point for those setups.

Examples

A standalone instance with binary logging enabled

Input

server-id: 1, bind-address: 0.0.0.0, innodb_buffer_pool_size: 4G, max_connections: 200, character-set-server: utf8mb4, binlog: enabled (ROW, 7 days)

Output

[mysqld]
server-id = 1
bind-address = 0.0.0.0
innodb_buffer_pool_size = 4G
max_connections = 200
character-set-server = utf8mb4

# Binary logging (replication / point-in-time recovery)
log_bin = mysql-bin
binlog_format = ROW
expire_logs_days = 7

The binlog block only appears because logging was toggled on; leaving it off would produce just the first five lines.

Best Practices & Notes

Best Practices

  • Set a unique server-id on every instance before enabling binary logging, even on a server you don't currently intend to replicate.
  • Prefer binlog_format = ROW for new setups, it replicates non-deterministic statements consistently, unlike STATEMENT.
  • Size innodb_buffer_pool_size to fit your working data set in memory, then leave headroom for the OS and other processes rather than maximizing it.

Developer Notes

Output is a plain [mysqld] section, not validated against a running mysqld; numeric directives (server-id, max_connections, expire_logs_days) are checked with a simple integer pattern, and the binary logging block is only appended when explicitly toggled on so the output never contains a half-configured logging setup.

MySQL Config Generator Use Cases

  • Bootstrapping my.cnf for a new standalone or primary MySQL instance
  • Preparing consistent server-id and binlog settings across a primary/replica pair
  • Producing a starting point to hand to a DBA or paste into infrastructure-as-code

Common Mistakes

  • Reusing the same server-id across multiple instances that will replicate from or to each other, which breaks replication.
  • Enabling log_bin without setting expire_logs_days, letting binary logs accumulate and consume disk space indefinitely.
  • Setting innodb_buffer_pool_size larger than available RAM, which can cause swapping instead of improving performance.

Tips

  • Increase expire_logs_days if you rely on binlogs for point-in-time recovery further back than the default retention window.
  • Use the PostgreSQL Config Generator alongside this one if your stack runs both engines and you want consistently formatted config output for both.

References

Frequently Asked Questions