I was trying to create a very simple MySQL event and realized the action was not running. I then realized that the user I was using did not have super privileges (or any other event-related privileges). I tried granting all privileges to this user via phpMyAdmin but that wasn’t working (makes since because I was logged in as that user and not the root user). In fact, I’m not sure if my account has a root user. How do I find out who the root user is (username and password)?
I’m using a hosting provider that has cpanel and when I look at a list of my mysql users I only see the ones I created. Is there a way I can find out via phpMyAdmin if I’m logged in as another user?
Also, whenever I create a user in cpanel, I always select the checkbox to grant “all privileges” but I found out just now that super priviledge and a few other privileges are not on the list. As far as I can tell, I won’t be able to create any mysql events since I can’t grant super privileges to any of my users.
Addition:
When assigning a user to a database, the only privileges I can select from are
- ALTER
- ALTER ROUTINE
- CREATE
- CREATE ROUTINE
- CREATE TEMPORARY TABLES
- CREATE VIEW
- DELETE
- DROP
- EXECUTE
- INDEX
- INSERT
- LOCK TABLES
- REFERENCES
- SELECT
- SHOW VIEW
- TRIGGER
- UPDATE
From what everyone is saying in their answers it looks like I’m using a shared database, the event schedule is either turned off and/or I am not allowed to grant users privileges dealing with events. Kind of sucks..
But for now I will use cron jobs.
Rule of thumb: Your application never, ever needs superuser privileges.
Not even to use the event system.
The only thing you need SUPER for in this instance is to enable or disable the scheduler (which is a server-wide setting). If you’re on a shared database host, it will be up to the provider whether or not the scheduler is enabled, and whether you’ve been granted the EVENT privilege on your database(s).
If you’re not on a shared host, check your my.ini for the event-scheduler line and make sure it’s enabled. Then, make sure you’ve granted EVENT to your application userid. The EVENT privilege should be granted if you’ve used
GRANT ALL PRIVILEGESon the database (as opposed to on individual tables).