Online MySQL Configuration Wizard from Percona


Merry Christmas! Just in time for the holidays, we have released a new tool to help you configure and manage your MySQL servers. Our online MySQL Configuration Wizard can help you generate a good basic configuration file for a server. This MySQL tuning wizard is our answer to the commonly asked question, “what is a good default configuration file for my server with 16 GB of RAM?”

We have a raft of new features planned for future releases, including advanced configuration options, supersafe settings to prevent bad things from happening, and much more. In the future we plan to add more online tools to help you be more productive.

Please give it a spin and let us know what you think. Credit for this tool must go to Miguel Trias, our talented lead developer. Thanks also to the many experts inside Percona who helped test, and made suggestions for improving the tool.



  1. says

    Congratulations on the new release. I’ve had the pleasure to work with Miguel and I can tell he’s really talented so I trust this to be a well designed tool.

    Great tool by the way.

  2. says

    It stores the configuration in your user account. The next release will also be able to email the configuration file to you. The user account you create will be used for all future tools we add, too.

  3. says


    You probably have the conference account not the tool account. They are different. I agree this is less than perfect and we plan in the end to integrate things so same account would work for tool, conferences, forum and other services we provide. It just was not done yet.

  4. says

    You know that this means inviting people to create fake accounts with ludicrous names? (Which I have just done!) :)
    If the account is not operational yet, it would be nicer to let people see their configuration file online and let them worry about saving it until you’re ready to do something with these email addresses.

    Thanks for the tool, anyway! I will try the configuration file and see if I get any improvement.

  5. says


    You’re welcome to exploit the system :)
    Also note the person with so much experience as you can no question create better configuration file manually. This tool is designed more to help people running MySQL with defaults and similar circumstances.

  6. Justin Rovang says

    Oooohhh shiny! You beat me to it! I was going to start working on one of these this winter.


    – Maybe ask what kind replication: statement/mixed/row ?

    – Would it be possible to model a replica off of a master config? e.g.: have it share almost all of the same configuration, and only ask for a few things like ‘name’, then jack up the max_allowed_packet by a small %

    Very nice work!

  7. says

    The account actually DOES work — if you click on the header, you’ll see a list of your generated configurations, which you can then regenerate. In the future there will be more functionality: edit them, for example.

    I’d like a single-sign-on system for all of our web properties too. There’s the forums, wikis, customer accounts, and so on — but I didn’t want to delay “good” just because we don’t have “perfect.”

  8. Richard Ayotte says

    Excellent tool. Very well done. It’s a great way to get the basics in before tweaking, if even needed. Thank you.

  9. Wlad says

    You do not want to delay “good”. You might do it just without signing on. As far as I’m concerned, this is “perfect”. I did not sign(why should I?) so I was not able to see what it actually generated..

  10. Kim Carlsen says

    I was kind of disappointed that after spending time doing the 6 step wizard it asked me to create an account. Maybe it would be better to sign in before answering the questions if its absolutely required.

  11. says

    This looks like a wonderful tool, and had it asked for registration before going through the forms I would have registered happily. However, I found it rather underhanded and deceitful to ask at the end. Rectify that and this will be a tool that I will happily share with my colleagues.

  12. says

    A number of people have commented about registration at the end of the steps. In our early non-public testing, people preferred registration at the end over registering up-front. Who wants to register to use something when you haven’t even seen what it is yet? Note that you do NOT have to confirm your account before you can begin to use it; registration is a simple step and then you’re on to the generated configuration.

    I understand the opinions presented here, but I make decisions on data, not opinions. A/B testing is the right way to decide which approach is more satisfactory to more users, and we already did a limited form of that. We may do a more full-fledged A/B test in the future, but I would rather devote development resources (i.e. money) towards implementing new features.

  13. Romain says

    Hi Baron,

    Just seen the online config tool for MySQL. looks nice. i did a sample run, and i was confused by one of the descriptions, which state :

    “InnoDB is a durable storage engine by default, which means all transactions are securely synchronized to disk. If you do not have adequate hardware (a good quality RAID controller with a battery-backed write cache, for example), then you might need to relax the durability for performance reasons.”

    Shouldn’t it be “if you *have* adequate hardware…, then you can allow yourself to relax the durability for performance reasons.” or something like that ? (assuming you’d want maximum safety)


  14. says

    If you don’t have good hardware, then operating InnoDB in 100% durable mode can be sloooooowwwwww because it takes a long time for disks to spin. So when people don’t have good hardware, then they often relax durability to get better performance.

  15. Romain GUINOT says

    Fair enough, Thanks Baron !

    I guess people should just get good hardware, and then have the most options wrt durability.

  16. says

    Well, it depends :-) A lot of people are just going to “yum install mysql” on a small, slow machine for some reason or another, for things that aren’t business critical. But even “my development machine” should be fast, on poor quality hardware: if the test suite takes too long to run, I am an unproductive developer. And the data is worthless.

  17. Romain GUINOT says

    True too.

    My dev machines are also yum install mysql (Fedora), with settings roughly the same that what the online tool reported, except for table_definition_cache which i did not know about. So i guess i’ve paying some attention to your blog :)

    Thanks & keep up the great work,

  18. says

    Great idea indeed!

    I’ve got a few suggestions.
    When you choose the “This server will be a replica”, then I’d say these options should be checked, and strongly recommended by default (and probably moved out from the “safeguards” section to a slave dedicated one?): “Make the server read-only” and “Log replication updates” (the second one especially if binlogging is enabled on slave).
    Then I don’t like the idea of putting socket and pid files in mysql data directory. My usual choice for them is /var/run/mysqld/.
    The same goes for all the log files. IMHO especially having relay logs and bin logs in the same directory, or even on the same partition as data is less safe (disk full), and harder to manage and monitor.
    I would add few more options, but I understand that it is supposed to be a simple quick wizard for non experienced users.

  19. Dana says

    Please give me an advice in next problem:
    I have a table(Big_table name) with over 25 millions of records and I must run often some scripts like:
    insert into table2
    SELECT * FROM Big_table o inner join Big_table s on o.fields_1=s.fields_1
    and o.firs_count=s.firs_count and<
    WHERE ((o.fields_2=s.fields_2 and o.fields_2”) or (o.fields_3=s.fields_3 and o.fields_3”)) and (o.fields_4=s.fields_4 or o.fields_5=s.fields_5 or o.fields_6=s.fields_6)
    and (o.fields_7s.fields_7 or o.fields_7 = ” or o.fields_7 is null or s.fields_7 is null)
    and it ran over 3 days .
    I want to mention that “inner join” field “fields_1″ (o.fields_1=s.fields_1 ) has the varchar(100) type and it is indexed.
    I have installed Percona-Server-5.5 on system with
    OS Debian 6.0.5 (Linux 2.6.32-5-amd64)
    CPU Core(TM) i5-2400 CPU @ 3.10GHz (x 4)
    RAM 16 GB

    What hardware do you think I need ?
    What advices can you give me in this situation?

  20. Daigu says

    MySQL does not start with the config that the tool produced for me.
    The following lines seem rather dubious as the standard config points somewhere else.

    socket = /var/lib/mysql/mysql.sock
    pid-file = /var/lib/mysql/

    Standard config:
    socket = /var/run/mysqld/mysqld.sock
    pid-file = /var/run/mysqld/

    Wrote to Percona, no reply.

Leave a Reply

Your email address will not be published. Required fields are marked *