I am trying to run mysqldbcompare to see the difference between two tables:

mysqldbcompare --server1=server1:2016@localhost --server2=server2:2016@localhost user:user --difftype=sql --run-all-tests

I get this error. I have already granted all privileges to users.

ERROR: Query failed. 1142 (42000): SELECT command denied to user 'server1'@'localhost' for table 'proc'


2 Answers 2


You should enable the dbuser to have READ permissions to the proc table.

The process attempts to perform a SELECT statement on the 'proc' table. The 'proc' table is a system table which retains the procedures of all users on that mysql instance. On shared hosting, allowing userA to see the procedures of userB, which would include information about table structure, etc., would be considered breach of security.All info found here

Or you can use the root user.

  • The trouble I ran into was due to the databases being on shared hosting which is discussed in the attached link. It also provides more information about the answer provided by Amin. Thanks
    – TryHarder
    May 20, 2021 at 7:36

Add this to the connection string

Use Procedure Bodies =false; 
  • Hi there, welcome to the site. Could you explain a bit more about what that does and how it should help?
    – Tom V
    Feb 13, 2017 at 7:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.