[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2271
  • Last Modified:

Access denied; you need the RELOAD privilege for this operation

I'm new to PHP and MySQL..

I get the following error when I do the "Flush Privileges" statement:  Access denied; you need the RELOAD privilege for this operation

It actually does to the insert statement above - I don't know if I need the "Flush Privileges" or not, but it was part of the example, and it seems like clearing out the settings on the server was a good idea (if i understand what flushing does correctly)

I created a database using MySQL WorkBench - but i forgot to put an Auto_Increment on the primary key, so I had to add it later.  After adding it, the error started coming up.  I created a whole new table, just to see if it was related to the table, but it's doing it on the new table.

Thanks for your help!!!

<?php
include 'data/config.php';
include 'data/opendb.php';

$query = "INSERT INTO myTable (Name) VALUES ('Name')";
mysql_query($query) or die('Error, insert query failed - 1' . mysql_error());

//This is the error section...

$query = "FLUSH PRIVILEGES";
mysql_query($query) or die('Error, query failed - 2' . mysql_error());

include 'data/closedb.php';
echo "New MySQL user added";


?>

Open in new window

0
slightlyoff
Asked:
slightlyoff
  • 3
  • 2
1 Solution
 
SwafnilCommented:
I haven't found a clear statement that auto_increments cause an implicit flush table but have you checked if the user you are currently inserting data with has the RELOAD privilege?

Please post the result of the following command to see what's exactly causing the above error:
SHOW GRANTS;

Open in new window

0
 
slightlyoffAuthor Commented:
Thanks for your quick reply, I won't be back to the project until tomorrow - I'll keep you posted on what I get.

Thanks again!!!
0
 
slightlyoffAuthor Commented:
Here's what I got:

'GRANT USAGE ON *.* TO ''myuser''@''%'' IDENTIFIED BY PASSWORD ''xxxxxxxxxxxxx''''
GRANT ALL PRIVILEGES ON `mytable`.* TO ''myuser''@''%'' WITH GRANT OPTION'

I ran the command inside of MySQL WorkBench...

Thanks for your help!
0
 
SwafnilCommented:
Did you also do a "FLUSH PRIVILEGES" after you granted rights to myuser?

There's also an error in the second GRANT, the database name is probably something else than "mytable", the ON command expects the syntax [DBNAME].[TABLENAME], in your case it would be:

GRANT ALL PRIVILEGES ON [DBNAME].mytable TO ''myuser''@''%'' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Open in new window


See if that fixes the error.

Hope that helps!
0
 
slightlyoffAuthor Commented:
Thanks for your help.  Turns out I don't have the permissions to do that.  So, it's all good.  Thanks for your help!
0

Featured Post

Learn to develop an Android App

Want to increase your earning potential in 2018? Pad your resume with app building experience. Learn how with this hands-on course.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now