How to Edit the MySQL my.cnf File

How to Edit the MySQL my.cnf File

In this guide, we’ll show you how to make changes to your database settings in the MySQL my.cnf file. For example, you may need to increase the number of max_connections or the query_cache_size value for your server.

To do this, you simply log in the server via SSH and edit the my.cnf file using an editor such as Nano. This article will explain the steps to view and edit your my.cnf file. We’ll also show you how to view your MySQL variables through SSH then how to access them in phpMyAdmin, where they can be edited.

You will need root access to our VPS or Dedicated server to follow this guide.

Get better performance and security with our Managed VPS Hosting.

Don’t have time to read the article. Watch our video tutorial here.

How to View Mysql Settings in the my.cnf File

  1. Login to your server via SSH
  2. To view the MySQL my.cnf settings type the following:
    cat /etc/my.cnf

    Viewing your MySQL Settings in SSH
    The contents of the my.cnf file will display similar to the snapshot above.

Editing the Mysql my.cnf File

  1. Login to your server via SSH.
  2. To edit the MySQL settings with nano type the following:
    nano /etc/my.cnf

    There are several editors you can use in shell. Nano, Vim, or Emacs. This article will focus only on Nano.

    Editing your my.cnf via SSH
  3. Find the line to edit. For example, if you want to edit the max_connections, find the following line.
    max_connections=100
    Nano view of my.cnf max connections
  4. To increase the max_connections to 110 change it to the following.
    max_connections=110
  5. Enter Ctrl + O to “WriteOut” or save the settings.
  6. Then Ctrl + X to exit.
  7. Restart MySQL by typing the following.
    service mysql restart

    Now the max_connections is increased to 110 instead of 100.

Viewing the Mysql Variables Through Shell

  1. Login to your server via SSH.
  2. Type the following command.
    mysqladmin variables

    View of MySQL Variables
    The variables will display similar to the snapshot above.

Viewing MySQL Variables in phpMyAdmin

  1. Log into your phpMyAdmin.
  2. Click the Variables tab at the top right. Then PhpMyAdmin will list all the variables and their settings on your server.
    View of MySQL Variables in PhpMyAdmin
  3. If you want to edit the values, you should edit the my.cnf file as described above.

Now you know how to edit your database settings in the MySQL my.cnf file and view database variables. For more guides check out our full section on Working with Databases.

JB
John-Paul Briones

John-Paul is an Electronics Engineer that spent most of his career in IT. He has been a Technical Writer for InMotion since 2013.

More Articles by John-Paul

Thoughts on “How to Edit the MySQL my.cnf File

  • Using the Terminal through my channel, I increased the max_allowed_packet, entered CTRL-O, entered CTRL-X — nothing happened. Clicked RETURN on my keyboard and get an error: error writing /etc/my.cnf: permission denied.

    Am I not allowed to increase the allowed packets? I was increasing them because I have this error in my error log: PHP Warning: Error while sending QUERY packet. … wp-includes/wp-db.php on line 2030

  • Hi, 

    I have made the bind address as 0.0.0.0 and can also see that my security group in AWS EC2 instance has outbound access for port 3306. Still i get connection failure with db. Any probable reasons plz ? 

    Regards,

    Anurag

     

    • Hello Anurag,

      Thank you for contacting us. I recommend contacting Amazon, so they can help you review the server logs for records of connections, or failures.

      Thank you,
      John-Paul

  • -bash and command not found error is coming when i m using this command in the ssh console plz help for this and thank you in advance 🙂

    • Hello vivek,

      While looking at the commands, I did notice a typo in one of them. It should read as below:

      mysqladmin variables

      I have made the change on the article to display correctly. It was wrong for a time, it seems. Thank you for finding that!

      If that is not the command giving you the error please let us know which one is giving you trouble as I do not see any others that should give an error.

      Kindest Regards,
      Scott M

Was this article helpful? Let us know!