1

Problem:

I'm using a local MySQL database on Ubuntu 15.10.

I have two users: the root user and a user called java with password password. The latter is used for a Java JPA test application.

I need 'java'@'localhost' have all privileges for the videogames database (I'm unconcerned with security).


What I did

I use mysql -u root -p to get into the console, then do GRANT ALL PRIVILEGES ON mydb.videogames TO 'java'@'localhost' WITH GRANT OPTION.

Then I do mysql -u java -p and show databases, showing the few databases user java has access to but it doesn't show the videogames database.

Connecting with the Java/JPA app gives throws an Exception Access denied for user 'java'@'localhost' to database 'videogames' (Error Code: 1044)


I have tried:

  • GRANT ALL PRIVILEGES ON mydb.videogames TO 'java'@'%' WITH GRANT OPTION
  • GRANT ALL PRIVILEGES ON mydb.* TO 'java'@'%' WITH GRANT OPTION
  • FLUSH PRIVILEGES
  • sudo service restart mysql
  • DROP USER ''

Dumps of the SHOW GRANTSs:

  • Grants for java@%
    • GRANT USAGE ON *.* TO 'java'@'%'
    • GRANT ALL PRIVILEGES ON 'mydb'.* TO 'java'@'%' WITH GRANT OPTION
    • GRANT ALL PRIVILEGES ON 'mydb'.'videogames' TO 'java'@'%' WITH GRANT OPTION
  • Grants for java@localhost
    • GRANT USAGE ON *.* TO 'java'@'localhost' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'
    • GRANT ALL PRIVILEGES ON 'javabase'.* TO 'java'@'localhost'
    • GRANT ALL PRIVILEGES ON 'mydb'.* TO 'java'@'localhost' WITH GRANT OPTION
    • GRANT ALL PRIVILEGES ON 'mydb'.'videogames' TO 'java'@'localhost' WITH GRANT OPTION

Dump of SELECT user, host FROM mysql.user;:

+------------------+--------------------------+ | user | host | +------------------+--------------------------+ | java | % | | root | 127.0.0.1 | | root | ::1 | | root | (name of my pc) | | debian-sys-maint | localhost | | java | localhost | | root | localhost | +------------------+--------------------------+


Any help is appreciated.

Community
  • 1
  • 1
JoseHdez_2
  • 4,040
  • 6
  • 27
  • 44

1 Answers1

3

video games is a database and not a table.

everything before the dot is database, after it is the table.

so this would be right:

GRANT ALL PRIVILEGES ON videogames.* TO 'java'@'localhost' WITH GRANT OPTION
recycler
  • 1,301
  • 9
  • 9