Saturday, February 23, 2013

automysqlbackup error fix

You get this:
mysqldump: Got error: 1142: SELECT,LOCK TABL command denied to user 'debian-sys-maint'@'localhost' for table 'cond_instances' when using LOCK TABLES

to fix it:
edit /etc/default/automysqlbackup
change the DNAMES line to this:

DBNAMES=`mysql --defaults-file=/etc/mysql/debian.cnf --execute="SHOW DATABASES" | awk '{print $1}' | grep -v ^Database$ | grep -v ^mysql$ | grep -v ^performance_schema$ | tr \\\r\\\n ,\ `
or, to be succinct: add
 | grep -v ^performance_schema$ 
into the list. If you're doing any different method of DBNAMES, just make sure to exclude performance_schema.

Why is this happening?
automysqlbackup's default configuration attempts to lock tables before dumping. This error isn't specifically automysqlbackup's problem to fix, as much as it's a problem (or not) that performance_schema.cond_instances can't be locked [by debian-sys-maint] at the time of mysqldump, and mysqldump is what's throwing the error.

Is it a problem of backing up or not backing up performance_schema?
I can't answer that for your situation, though if you understand what the table does and how to recreate it you can be better informed about whether the backup is necessary to you. (hint: probably not unless corporately you need to keep all diagnostic logs on everything.) Also, this is not related to the other databases which actually hold your data and which you do want to back up.
 What does grep -v do?
It says, "don't include this in the list". Note, while you're here, that this also includes the "mysql" table. If you need to keep your users and permissions for disaster recovery reasons, you may wish to consider not excluding that table.
What is "Database"? Why is that grep -v? I don't have a database called Database.
Database is the column title of the result of "SHOW DATABASES" SQL query.

Friday, February 22, 2013

Ubuntu Waiting for network message on bootup

Simple fix for this:
edit /etc/network/interfaces
make sure "auto" only points to network devices that actually will be and need to be on your network (for services) at boot time.

For instance, wlan0 may *not* be online before your OS loads.

Or, you might have other "auto" devices that obtain an ip address via DHCP. The failsafe allows sufficient time to get a DHCP address. You may decide whether you want to disable the failsafe or disable the auto, but note that some services depend on at least eth0 being "alive" before they start (or your ethn configured device).

Since you're there, it's a good idea to check for legacy network devices you may have configured in the past and make sure they're not "auto".

(If you're using DHCP and this configuration does not work for you, it's an issue with DHCP.)

Blog Archive