How to manage MySQL binary log space (Debian)

So it turns out that what is filling up my root partition is my MySQL binary logs.

A collection of fat files in /var/log/mysql ...

So I had several options:

  • Move the logs to a different partition
  • Increase the size of the root partition
  • Decrease the size of the logs

The first option is probably the most reasonable one. But since I had other plans for the evening I actually went with the last option: decreasing the size of the logs! :roll:

The magic conf is located in /etc/mysql/my.cnf and the magic line is:


expire_logs_days = 5

It was set to 10 but I have no idea why I even need 5 days. Aren't those logs only useful until transactions commit to disk, and replication executes. Oh maybe if you have replicated slaves more than 5 days behind the master??

Edit 2009: You can purge the logs up to a specific file with a statement like this:


PURGE BINARY LOGS TO 'mysql-bin.000666';

Why is my Linux root partition full?

Oh my... nothing puts a server down on its knees more than a root partition with 0% free space. Oh well, ok, maybe being dugg beats it. But still, when you have a full partition, you're in trouble...

First thing is to find what is using that much space. My best bet is to do this:

cd /
du -s *

You may also like du -sh * which will show human readable sizes.

Then you just need to cd into the largest dir and iterate... ;)

About Apple Design

"Apple's design is supposed to be the ultimate perfection in 21st century computing. We should all learn from them."

I get that a lot when discussing b2evolution's user interface (which, btw, I like to think has improved significantly in version 2.0...)

While I do like what Apple does; while I do think Jonathan Ive is one of the greatest designers of our time; I still need to rant a little before I dive into the present day :>

So here's the top 5 user interaction design "mistakes" I would never have made if I has the final word at Apple's:

  1. A mouse where you never really know when you're going to left or right click, unless you really pay attention;
  2. An iPod that requires up to ten keypresses to exit shuffle mode while listening to a playlist;
  3. A mouse that gives Windows switchers a hard time with no control over acceleration, not even in the most obscure hidden place of the control panel. (Not even from the command line actually);
  4. A wireless keyboard with no numpad (not even an option);
  5. A battery you cannot replace, not even by turning one single screw. (How comes they got that right on the iMacs?)

And I won't even start with the marketing decisions (leaving a lot of features out of the iPod touch, etc.)

Of course, I'd make a lot more other mistakes, but still... Besides what's the use of a personal blog if not for pointless rants... :P

How to check what MySQL version I am using?

In order to determine which MySQL version you're running you can type the following command: mysql -V

Sample results:

# mysql -V
mysql Ver 14.7 Distrib 4.1.11, for pc-linux-gnu (i386)

# mysql -V
mysql Ver 14.12 Distrib 5.0.32, for pc-linux-gnu (i486) using readline 5.2

Now, if you want to query for the version number while beign logged in (PHP script for example), just go with: SELECT VERSION(); .

I believe this is only working since MySQL 4 though.

Easy web snapshots

I think the easiest site for making quick web snapshots is thumbalizr ...