2012-01-20 13 views
8

Lettore di StackOverflow da molto tempo, prima di inviare una domanda.errore: 'Accesso negato per l'utente' debian-sys-maint '@' localhost '(utilizzando password: YES)'

Ho dovuto riavviare l'hardware il mio computer portatile di sviluppo qualche notte fa per vari motivi. Quando l'ho riportato su ho capito che mysqld non era più accessibile. Di solito mi collego con root su una macchina di sviluppo locale. Non potevo neanche iniziare/fermarlo tramite gli script di init come al solito e così mi sono rivolto a vari motori di ricerca come sempre. Dopo aver consultato Google, Bing e Duckduckgo.com, non sono riuscito a trovare una soluzione al problema. Ho trovato soluzioni a problemi simili, ma tutto ciò comportava la modifica della password generata automaticamente per debian-sys-maint e l'accesso come root per impostarne uno nuovo, ma poiché non riesco ad accedere come root, questo non risolve il mio problema.

Qualcuno sa di altre soluzioni-candidati per questo dilemma?

errore: 'Accesso negato per l'utente' debian-sys-maint '@' localhost '(utilizzando la password: YES)'.

+2

Il messaggio di errore indica che il server mysql è in esecuzione, ma le credenziali di accesso sono errate. Forse questa domanda dovrebbe essere posta su http://serverfault.com/? – Mchl

risposta

3

Sembra che tu abbia eliminato le tabelle nel database ("mysql") che contiene le credenziali per accedere a tutti i database. Vedi qualcosa nei log MySQL (/ var/log/mysql) che indica un problema?

Se esiste un problema, l'approccio per provare a risolverlo dipenderà dal tuo motore di archiviazione. Stai usando MyISAM (il valore predefinito)? Se è così, prova a spegnere il demone e usa myisamchk per tentare una riparazione.

Se non è possibile riparare, è probabile che si debba ripristinare dai backup (si dispone di backup, giusto?) O reinizializzare MySQL (probabilmente la semplice reinstallazione del pacchetto tramite APT è più semplice).

Si può provare su ServerFault per ulteriori suggerimenti da amministratori esperti.

P.S.- se si dispone dell'accesso utente di sistema, è possibile reimpostare la password di root MySQL anche se non è possibile accedere a MySQL, anche se tramite un somewhat convoluted procedure.

+1

Grazie per la risposta.Dopo aver provato molte soluzioni diverse, ho semplicemente fatto la cosa più semplice che avrei dovuto provare all'inizio, ovvero: apt-get remove mysql-server; apt-get install mysql-server; mysql_secure_installation – dVw

+0

Ho lo stesso problema adesso! Il mio server MySQL visualizza lo stesso messaggio, sarò in esecuzione, non posso fermarlo e anche il riavvio non funziona !! Mysql non rileva uno dei miei tavoli! qualche soluzione? Non ho alcun backup – sinoohe

+0

Hai provato a utilizzare myisamchk come mi consiglia? Se ciò non funziona e non hai backup, probabilmente sei SOL. Facciamo una lezione sull'importanza di mantenere i backup, specialmente per i sistemi di produzione. –

9

Ho appena ottenuto lo stesso errore dopo database mysql ho ripristinato in questo modo:

mysql -h localhost -u root -p < mysql.backup.sql 

mysql. il file backup.sql proviene da un altro server.

Il problema sembra provenire dalla diversa password memorizzata in /etc/mysql/debian.cnf nei sistemi di destinazione e di origine. Copia/incolla la riga della password dal file debian.cnf del sistema di origine nel file nel sistema di destinazione. Quindi sono stato in grado di riavviare mysqld senza problemi.

Nota: ho dovuto fare killall mysqld prima che potessi fare un riavvio.

+3

Ho appena trovato la password elencata in /etc/mysql/debian.cnf come suggerito. Chiamiamolo "seekrit". Poi resetto la password in MySQL: "concedi tutti i privilegi su *. * A 'debian-sys-maint' @ 'localhost' identificato da 'seekrit'; privilegi di flush;" Funziona come un fascino! – oalders

+0

Grazie, ha funzionato per me dopo una copia di db. Sembra che questo utente/password sia usato dagli script di avvio /etc/init.d/mysql Questo mi sembra debian-specifico, non l'ho mai notato su altri linux. –

Problemi correlati