Come connettersi e creare un database in MySQL?


17

Voglio installare MySQL e creare un database su di esso usando il seguente codice:

sudo apt-get install mysql-server
mysqladmin -h localhost -u {username} -p create lrs

Ricevo il seguente messaggio dopo aver eseguito la seconda riga:

    Enter password:
    mysqladmin: connect to server at 'localhost' failed
    error: 'Access denied for user '{username}'@'localhost' (using password: YES)'

Qual è il problema?


1
Se hai effettivamente utilizzato questi 2 comandi, dove hai concesso i PRIVILIGI per {username} (se non admin / root) per poter accedere a un database?
Rinzwind,

Risposte:


26

Dopo aver installato MySQL, devi impostare la password di root di mysql . Fare così:

  1. Immettere il comando successivo in un terminale:

    mysql -u root

  2. Ora dovrebbe aprire la console mysql . E digitare la seguente riga:

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');

Per uscire dalla console mysql, immettere exit.

Ora dovresti creare il database con l' utente root . Fare così:

  1. Apri mysql dal terminale:

    mysql -u root -p

  2. Inserisci la password creata prima.

  3. Immettere la seguente riga:

    CREATE DATABASE yourdatabasename;

Se entri SHOW DATABASES;, dovresti vederlo nell'elenco. Se è così, hai un database pronto per l'uso!


mysql -u rootmi dàERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Nicolas Raoul il

Questo errore significa che hai già un rootutente e ha una password. Se hai dimenticato la rootpassword, leggi la documentazione di MySQL .
Lucio,

1

Devi connetterti a MySQL usando l'utente root e la password associata. Se è necessario impostarli, utilizzare il comando seguente:sudo mysqladmin -u root -h localhost password 'mypassword'

Da lì, puoi configurare account aggiuntivi seguendo questo documento: Come creare un nuovo utente e concedere le autorizzazioni in MySQL


1
Ho copiato sudo mysqladmin -u root -h localhost password 'mypassword'e incollato nel mio terminale e ricevo il messaggio Access denied for user 'root'@'localhost' (using password: NO).
user543489

@Bert Questo codice non funzionerà. Il password 'mypassword'è sbagliato, dovrebbe essere-password 'mypassword'
Lucio

qualcosa dovrebbe essere sostituito con 'mypassword'?
user543489

Ho eseguito sudo mysqladmin -u root -h localhost -password 'mypassword', ma ho ottenuto Access denied for user 'root'@'localhost' (using password: YES).
user543489

@ user543489 Cosa succede se si immette mysql -u root?
Lucio,

1

Questo è strano perché dal 12.04 (supponendo che tu stia eseguendo Kubuntu 12.04), MySQL è stato predefinito. Sembra che ti manchi qualche passaggio in mezzo, quindi diamo un'occhiata a questo:

Innanzitutto, come hai detto, facciamo un'installazione,

sudo apt-get install mysql-server

Dopo averlo installato, proviamo un piccolo test,

sudo netstat -tap | grep mysql

Quando esegui questo, dovresti vedere questa risposta,

tcp        0      0 localhost:mysql         *:*                LISTEN      2556/mysqld

Se non funziona correttamente, esegui questo comando di riavvio,

sudo service mysql restart

Ora per configurare il server.

Andiamo /etc/mysql/my.cnfa configurare le impostazioni di base. Ciò include il file di registro, il numero di porta, ecc. Ad esempio, per configurare MySQL in modo che ascolti le connessioni dagli host di rete, modificare la direttiva dell'indirizzo bind nell'indirizzo IP del server:

bind-address            = 192.168.0.5

Successivamente, riavvia il demone MySQL,

sudo service mysql restart

Se vuoi cambiare la password di root di MySQL, esegui questo:

sudo dpkg-reconfigure mysql-server-5.5

Il demone verrà arrestato e ti verrà richiesta una nuova password.

Una volta terminato, dovresti essere configurato e alcune ricerche su Google ti insegneranno come creare un database

Fonte: la guida del server Ubuntu


0

Esegui questo comando:

sudo dpkg-reconfigure mysql-server-5.5

(5.5 è il numero di versione, adattarsi se si dispone di una versione diversa)

Ciò ti consentirà di impostare la password di root di MySQL, che potrai quindi utilizzare con mysqladmine mysqlcomandi.


-1

Dopo aver installato MySQL, devi impostare la password di root di mysql. Fare così:

Enter the next command in a terminal:

mysql -u root -p

Enter Password: (Enter your password here).

Ciò non contribuisce a nulla che non sia già stato detto nella risposta accettata.
Guntbert,

-1

So che ha 3 anni, ma ho avuto anche questo problema e volevo pubblicare la mia risposta nel caso in cui qualcun altro facesse la stessa ricerca.

mysqladmin: connect to server at 'localhost' failed

Questo indica che il tuo utente non ha il permesso di connettersi al database stesso, prima ancora che riesca ad accedere; non l'utente del database, il tuo vero utente linux. Esegui tutto come superutente: sudo mysql -u root -p

Solo root (l'utente linux o un utente con privilegi sudo) può accedere a mysql come root (l'utente del database). Non sono riuscito a trovare da nessuna parte documentare questo, ma la sperimentazione ha dimostrato che era il caso. È possibile creare un nuovo utente con tutti gli stessi diritti dell'utente root e che non sarà limitato.

sudo mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
FLUSH PRIVILEGES;

Ora "newuser" (o qualunque nome tu scelga) può essere loggato-as senza la necessità di sudo e puoi usarlo per tutte le esigenze amministrative del tuo database.


1
L'uso della parola probablyin una risposta qui è disapprovato.
WinEunuuchs2Unix

Beh, certamente non posso dire che sia senza testarlo, ora posso?
WizardStan
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.