2012-08-01 20 views
28

Ho appena installato xampp e sto usando la riga di comando per scrivere mySQL. Sto usando 'root' senza password e posso connettermi a mysql ma non posso CREATE DATABASE quando ottengo l'errore 1044 access denied for user '' @ 'localhost'. Ho effettuato l'accesso come -uroot.Accesso negato per utente root in riga di comando MySQL

Ho i privilegi in phpMyadmin per fare ciò che voglio, ma, in linea di comando, non ho privilegi di scrittura. Ho esaminato tutti gli altri post correlati su questo argomento, ma senza risultato. Non posso concedere i privilegi come non ne ho comunque.

+0

Sono su Windows btw – gavin

+0

sullo strumento a riga di comando MySQL, quando si fa clic, si apre e chiede la password, siete in grado accedere correttamente? – Shubhansh

+0

Ciao. Non mi viene richiesto nulla, vado semplicemente a C: \ xampp \ mysql \ bin \ mysql -u root; – gavin

risposta

0

ho reinstallato il connettore msi ODBC e reinstallato mySQL direttamente (a parte xampp) e funziona ora.Era un problema con il connettore, credo, dato che SHOW DATABASES non mostrava affatto i miei database.

Il mio accesso "root" non ha avuto accesso al DB, il che ha fatto sembrare che avesse dei privilegi limitati ma in realtà non era collegato correttamente.

-2

Non deve avere un carattere di spazio tra -u e il nome utente:

mysql -uroot -p 
# or 
mysql --user=root --password 
+0

Ciao. Ho appena provato e ho ancora lo stesso errore. Dovrebbe dire: "Accesso negato per 'root' @ 'localhost'"? invece di utente: ''? Non sono sicuro di aver effettuato l'accesso come 'root' – gavin

8

navigare fare C: \ xampp \ mysql \ bin \ e assicurarsi che il file mysql.exe è in quella cartella.

mysql -uroot -p 

se non si dispone di una password, premere invio.

le modifiche rapide alle

mysql> 

fanno comandi MySQL

+0

SHOW DATABASE; - funziona – gavin

+0

CREATE DATABASE db; - questo restituisce l'errore – gavin

+0

btw stavo usando la riga di comando di Windows e ora utilizzo la riga di comando mysql.In ogni caso, sono la stessa cosa – gavin

58

Stai accede in MySQL come utente root? Devi concedere esplicitamente i privilegi al tuo account utente "regolare" MySQL mentre sei loggato come root MySQL.

Prima di tutto imposta un account di root per il tuo database MySQL.

Nel tipo terminale:

mysqladmin -u root password 'password' 

Per accedere in MySQL, utilizzare questo:

mysql -u root -p 

Per impostare i privilegi iniziano manualmente il server con l'opzione skip-grant-tables, mysql aperto client e aggiorna manualmente la tabella mysql.user e/o le tabelle mysql.db. Questo può essere un compito noioso, quindi se ciò di cui hai bisogno è un account con tutti i privilegi farei quanto segue.

avviare il server con l'opzione di skip-grant-tables

client di avvio mysql (senza un nome utente/password)

Eseguire il comando

flush privileges; 

che costringe le tabelle delle autorizzazioni da caricare.

creare un nuovo account con il comando GRANT qualcosa di simile (ma sostituendo il nome utente e la password con ciò che si desidera utilizzare.

GRANT ALL on *.* to 'username'@'localhost' identified by 'password'; 

Riavviare il server in modalità normale (senza saltare-grant-tables) e Accedi con il tuo account appena creato.

consultare this MySQL docs.

+0

Grazie, Jacob. In realtà ho reinstallato il connettore ODBC msi e reinstallato mySQL direttamente (oltre a xampp) e ora funziona. Era un problema con il connettore, credo, dato che SHOW DATABASES non mostrava affatto i miei database. Il mio login 'root' non ha avuto accesso al DB, il che ha fatto sembrare che avesse dei privilegi limitati ma non era collegato correttamente. Questo è roba utile in futuro, però - grazie. – gavin

4

Per impostazione predefinita non è impostata alcuna password per l'utente root in XAMPP.

È possibile impostare la password per l'utente root di MySQL.

Spostarsi

localhost: 80/security/index.php

e la password impostati per l'utente root.

Nota: cambiare il numero di porta nell'url sopra se Apache si trova su una porta diversa.

Aprire XAMPP pannello di controllo Fare clic sul pulsante "Shell"

Prompt dei comandi finestra si aprirà ora in quel tipo di finestra

mysql -u root -p; 

Si chiederà la password digitare la password che hai impostato per l'utente root.

ci si va ur login come utente root: D Ora fare quello che u vogliono fare: P

-1

questo potrebbe aiutare su Ubuntu:

andare a /etc/mysql/my.cnf e commentare questa linea:

bind-address   = 127.0.0.1 

Spero che questo aiuti qualcuno, ho cercato per questo un po 'troppo

Acclamazioni

0

di file server solo cartella nome chane
etc/mysql
rinominare
mysql

Problemi correlati