mysqldump: Got error: 1044: Access denied for user ‘root’@’localhost’ to database ‘information_schema’ when using LOCK TABLES

by on October 26, 2010 · 7 comments· LAST UPDATED October 26, 2010

in

I'm trying to make backups using the mysqldump command and getting the following error or warning:

mysqldump: Got error: 1044: Access denied for user 'root'@'localhost' to database 'information_schema' when using LOCK TABLES

How do I fix this problem?

You can pass the --single-transaction option to mysqldump command:
$ mysqldump --single-transaction -u user -p DBNAME > backup.sql
Another option is to grant LOCK TABLES to your user:
$ mysql -u root -p
And type:
mysql> GRANT SELECT,LOCK TABLES ON DBNAME.* TO 'username'@'localhost';

Sample Shell Script

#!/bin/bash
# Purpose: Backup mysql 
# Author: Vivek Gite; under GNU GPL v2.0+ 
NOW=$(date +"%d-%m-%Y")
DEST="/.backup/mysql"
# set mysql login info
MUSER="root"                # Username
MPASS='PASSWORD-HERE'   # Password
MHOST="127.0.0.1"  # Server Name
 
# guess binary names
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"
 
[ ! -d "${DEST}" ] && mkdir -p "${DEST}"
# get all db names
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
 FILE=${DEST}/mysql-${db}.${NOW}-$(date +"%T").gz
 # get around error 
 $MYSQLDUMP --single-transaction -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE
done
TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 7 comments… read them below or add one }

1 fox November 18, 2010 at 2:53 am

Gracias por la data!

Reply

2 webuffalo February 9, 2011 at 9:56 am

I added this to automysqlbackup, let’s see tomorrow if it worked
thanks

Reply

3 Alex October 25, 2011 at 1:32 pm

Niiiceee) thx! It worked.

Reply

4 Juarez November 22, 2011 at 7:45 pm

The first tip worked just fine! Thanks a lot!

Reply

5 RudyD August 3, 2012 at 6:19 pm

Greetings!

Just getting this on newer Ubuntu and Debian machines.
The “–single-transaction” switch ruins the next switch which would be the credentials from a custom ‘~my.cf’ file.
Passing the information_schema into the ignored databases seems making the script skip it. ( Other script of Vivek’s a bit customized further).

Anyhow I would like to find a way to dump that too if there is any reason and use.

(The grant of the rights for the root user did not help. In my case root proceeds with the dump.)

Anyhow I did not investigated further yet.
– R

Reply

6 marco September 10, 2013 at 3:50 am

I get this error when the user is root. How is it possible??

Reply

7 Anil Kumar Mistery April 5, 2014 at 8:03 am

Thanks, I am a great fan of your web site, if I will do anything for you in my life it wd be a great pleaseure for me . I have 8 years of experience of linux admin, I am a Redhat Certified Server Admin,thanks Nixcraft.
Anil Mistery

Reply

Leave a Comment

Tagged as: , , , , , , , , , ,

Previous Faq:

Next Faq: