Come posso eseguire con i privilegi root@localhost in mysql?
-
28-10-2019 - |
Domanda
Sto cercando di eseguire una dichiarazione di sovvenzione:
GRANT ALL ON daisyrepository.* TO daisy@localhost IDENTIFIED BY 'password_here';
Ho eseguito questa istruzione sul server stesso utilizzando il desktop remoto utilizzando:
- Phpmyadmin
- Amministratore mysql
- Client riga di comando
Ogni volta che eseguo questa affermazione, ricevo il seguente errore:
ERROR 1044 (42000): Access denied for user 'root'@'%' to database 'daisyrepository'
Un po 'di informazioni sui privilegi:
radice@%
SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, REPLICATION SLAVE, REPLICATION CLIENT, EXECUTE
root@localhost
ALL PRIVILEGES
Se capisco correttamente, anche se sono connesso sul server, MySQL sta trattando le mie dichiarazioni come se venivo da una posizione remota?
EDIT #1Clafification: il server a cui sono connesso è dove è in esecuzione anche MySQL.
EDIT #2Una volta in RDP, accedo a MySQL usando la riga di comando. Se eseguo select current_user (), ottengo root@127.0.0.1. Il file my.ini ha anche skip_name_resolve in esso.
Soluzione
Sembra che tu stia sempre connettendo su TCP (anziché le prese unix su Linux o i tubi nominati su Windows). Poiché hai SKIP_NAME_RESOVE nel tuo file INI, il server non invertisce DNS l'IP 127.0.0.1 di nuovo a LocalHost, quindi l'utente che si appare come è root@127.0.0.1, non root@localhost.
Se puoi, rimuovi SKIP_NAME_RESOVE dal file INI e assicurati che Abe Petrillo menziona di avere "LocalHost 127.0.0.1" nel tuo file host. Ciò dovrebbe consentire di connetterti come root@localhost. Se hai bisogno di skip_name_resolve per essere rimesso, assicurati di correre,
GRANT ALL on *.* to 'root'@'127.0.0.1' identified by '$roots_password' WITH GRANT OPTION;
che dovrebbe consentire di aggiungere di nuovo il skip_name_resole nel tuo file INI.