2012-01-24 17 views
5

Ho visto questa stessa domanda in molte forme su questo sito e in molti altri forum. Tuttavia, ho provato tutte le soluzioni e ho ancora lo stesso risultato. Sono abbastanza sicuro che una volta ho avuto accesso root su questo server MySQL in passato e sono stato persino in grado di utilizzare lo strumento phpMyAdmin per creare database tra le altre query. Ora, quando vado a phpMyAdmin e cliccare su basi di dati vengo accolto da:Persi tutti i privilegi in MySQL

enter image description here

Se uso lo strumento di comando posso entrare utilizzando:

mysql -u root -p 

ottengo richiamato per inserire una password e Io faccio così. Quando cerco di fare qualsiasi altra cosa, dire:

mysql> SELECT user, host FROM mysql.user; 

I get the following: 
ERROR 1142 (42000): SELECT command denied to user 'root'@'localhost' for table 'user' 

ho anche seguito questo articolo (http://benrobb.com/2007/01/15/howto-remote-root-access-to-mysql/) dal sì sto ssh'ing a questo server MySQL da una macchina remota. Ancora una volta, quando tento:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; 

in varie forme, vengo accolto da un brutto:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 

Anche se io sto mettendo la stessa password che ho usato per l'accesso Voglio anche ricordare che ho aggiornato le mie risorse di pere ieri e mi chiedo se questa sia stata la causa di questo pasticcio ...

Se qualcuno mi può guidare, lo apprezzerei davvero. Grazie per tutto il vostro tempo e considerazione.

Elshae

**** **** Aggiornamento Nel tentativo di risolvere i problemi e l'esecuzione mysqld io ora non posso avviare il server di back up! Ogni volta che corro:

/etc/init.d/mysql start 
Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed! 

Cosa devo fare?

+0

Ho dimenticato di dire che ho anche fatto: mysql> SHOW GRANTS; + ------------------------------------------------ -------------------------------------------------- ----------- + | Concede per root @ localhost | + ------------------------------------------------ -------------------------------------------------- ----------- + | GRANT USAGE ON *. * TO 'root' @ 'localhost' IDENTIFICATO DA PASSWOR | + ------------------------------------------------ -------------------------------------------------- ----------- + 1 riga in set (0,00 secondi) – elshae

+0

Come è stato installato/avviato il server MySQL? C'è un'opzione che fa ignorare le tabelle di sovvenzione all'avvio, ma ha effetti collaterali come quello che descrivi ... – Romain

+0

Ouch, purtroppo non l'ho installato. C'è comunque che io possa ottenere quell'informazione? Inoltre, ho smesso e avviato prima di usare i comandi /etc/init.d/mysql start/stop se questo riproduce qualsiasi parte .. – elshae

risposta

2

Apprezzo il feedback di tutti, ho finalmente ottenuto il massimo parte.Per combattere il problema della

/etc/init.d/mysql start 
Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed! 

ho fatto:

ps aux | grep mysql 

che mi ha dato:

root  15265 0.0 0.1 3896 1284 pts/10 S 12:41 0:00 /bin/sh /usr/bin/mysqld_safe 
mysql 15302 1.6 2.8 132532 29600 pts/10 Sl 12:41 0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock 
root  15303 0.0 0.0 3008 608 pts/10 S 12:41 0:00 logger -p daemon.err -t mysqld_safe -i -t mysqld 
root  16160 0.0 0.0 3120 708 pts/10 R+ 12:42 0:00 grep mysql 

poi ho fatto:

kill -9 15265 
kill -9 15302 

Dopo che ero in grado di avviare MySQL con:

/etc/init.d/mysql start 

Da lì ho trovato questo articolo: https://help.ubuntu.com/community/MysqlPasswordReset e la magia per me non c'era:

/usr/sbin/mysqld --skip-grant-tables --skip-networking & 

ero in grado di seguire il filo e anche fatto:

GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY 'yournewrootpassword' WITH GRANT OPTION; 

L'unica la cosa che è un po 'strana è che la root non ha ancora il diritto di creare database da phpMyAdmin tra gli altri privilegi di cui ha bisogno la root. Tuttavia, sono in grado di creare database dalla riga di comando e per ora posso conviverci!

Grazie ancora a tutti per il vostro tempo e tutto l'aiuto!

0

Dal momento che si ha accesso locale al client, si potrebbe tentare di reimpostare la password di root con mysqladmin:

> mysqladmin password yournewrootpassword 

Se è possibile effettuare il login con successo, potrebbe quindi essere necessario concedere l'accesso di root, ancora una volta prima di può accedere a qualsiasi database:

GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY 'yournewrootpassword' WITH GRANT OPTION; 
+1

Grazie per la risposta, ma ottengo: mysqladmin: connettersi al server su "localhost" non riuscito errore: 'Accesso negato per utente' root '@' localhost '(usando la password: NO)' – elshae

0

comando GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; funzionerà solo se si è connessi come utente che hanno tutti i diritti ...

Poiché non hai i diritti su GRANT, nel tuo caso la dichiarazione precedente non funzionerà ... Si prega di contattare l'amministratore e ottenere ACCESS per connettersi ...

+0

Io sono l'amministratore ... e questo è l'unico account sul DB sembra ... – elshae

6

interrompere il servizio MySQL (stile UNIX):

/etc/init.d/mysqld stop 

crea il tuo MySQL con i privilegi:

/usr/bin/mysqld_safe --skip-grant-tables 

connettersi a MySQL DB con il tuo utente root

/usr/bin/mysql -uroot -p mysql 

Aggiornamento radice privilegi

update mysql.user 
set Select_priv='Y', 
    Insert_priv='Y', 
    Update_priv='Y', 
    Delete_priv='Y', 
    Create_priv='Y', 
    Drop_priv='Y', 
    Reload_priv='Y', 
    Shutdown_priv='Y', 
    Process_priv='Y', 
    File_priv='Y', 
    Grant_priv='Y', 
    References_priv='Y', 
    Index_priv='Y', 
    Alter_priv='Y', 
    Show_db_priv='Y', 
    Super_priv='Y', 
    Create_tmp_table_priv='Y', 
    Lock_tables_priv='Y', 
    Execute_priv='Y', 
    Repl_slave_priv='Y', 
    Repl_client_priv='Y', 
    Create_view_priv='Y', 
    Show_view_priv='Y', 
    Create_routine_priv='Y', 
    Alter_routine_priv='Y', 
    Create_user_priv='Y', 
    Event_priv='Y', 
    Trigger_priv='Y' 
where User='root'; 

Dopodiché, è sufficiente interrompere il servizio MySQL e ricominciare.

Problemi correlati