I have the whole setup working for months on my local computer.
I'm installing on a remote site now.
Created a fresh mysql DB, and created a new user ("someuser") and gave it complete grants, like so -
GRANT ALL PRIVILEGES ON . TO 'someuser'@'localhost' IDENTIFIED BY 'somepassword' WITH GRANT OPTION;
I have sync'd the db, using "python manage.py syncdb" and the correct tables were created. My settings.py has this same user.
But when I try to login a user through the application, and it hits the DB, I see the following in the logs -
(1045, "Access denied for user 'someuser'@'localhost' (using password: YES)")
I logged in through mysql (installed on the same box as django) and checked the grants and it correctly shows -
Grants for someuser@localhost
GRANT ALL PRIVILEGES ON * . * TO 'someuser'@'localhost' IDENTIFIED BY PASSWORD '*thesaltedpasswordOverHere' WITH GRANT OPTION
I don't want to use the root user/password for django, since it doesn't seem the correct way.
Any pointers as to what might be wrong ?
I do it like this for a database named foo_db:
Refering to the answer of @duffymo and changed the last statement could work for me.
I use this config and it works.
as far as i understood someuser is a DB guest user and not the admin one, right?
If so, from your MySQL DB admin user, grant someuser to access MySQL environment table 'mysql.user' as follow:
GRANT SELECT ON
mysql
.user
TO 'someuser'@'%';To me it worked, Ivan
In my case the settings.py has the following:
And it works if I change the 'USERNAME' to 'USER':
I got the following error:
Solution # 01: Verify that If you user has permission to access the database and perform the DDL & DML operations on it.
Solution # 02: Changed the database configuration in settings.py file
From:
To:
And it started working.