Wie verbinde und erstelle ich eine Datenbank in MySQL?

17

Ich möchte MySQL installieren und eine Datenbank mit folgendem Code erstellen:

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

Nach dem Ausführen der zweiten Zeile erhalte ich folgende Meldung:

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

Worin besteht das Problem?

user543489
quelle
1
Wenn Sie diese beiden Befehle tatsächlich verwendet haben, wo haben Sie {username} (wenn nicht admin / root) Berechtigungen erteilt, um auf eine Datenbank zugreifen zu können?
Rinzwind

Antworten:

26

Nachdem Sie MySQL installiert haben, müssen Sie das mysql-root-Passwort festlegen . Um dies zu tun:

  1. Geben Sie den nächsten Befehl in ein Terminal ein:

    mysql -u root

  2. Jetzt sollte es die MySQL- Konsole öffnen . Und tippe die folgende Zeile:

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

Um die MySQL- Konsole zu verlassen, geben Sie ein exit.

Jetzt sollten Sie die Datenbank mit dem Root- Benutzer erstellen . Um dies zu tun:

  1. Öffnen Sie MySQL vom Terminal aus:

    mysql -u root -p

  2. Geben Sie das zuvor erstellte Passwort ein.

  3. Geben Sie die folgende Zeile ein:

    CREATE DATABASE yourdatabasename;

Wenn Sie eingeben SHOW DATABASES;, sollten Sie es in der Liste sehen. Dann steht Ihnen eine Datenbank zur Verfügung!

Lucio
quelle
mysql -u rootgibt mirERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Nicolas Raoul
Dieser Fehler bedeutet, dass Sie bereits einen rootBenutzer und ein Kennwort haben. Wenn Sie das rootPasswort vergessen haben , lesen Sie die MySQL-Dokumentation .
Lucio
1

Sie müssen sich mit dem Root-Benutzer und dem dazugehörigen Passwort mit MySQL verbinden. Wenn Sie sie festlegen müssen, verwenden Sie den folgenden Befehl:sudo mysqladmin -u root -h localhost password 'mypassword'

Von dort aus können Sie zusätzliche Konten konfigurieren, indem Sie diesem Dokument folgen: So erstellen Sie einen neuen Benutzer und erteilen Berechtigungen in MySQL

Bert
quelle
1
Ich habe das kopiert sudo mysqladmin -u root -h localhost password 'mypassword'und in mein Terminal eingefügt und bekomme die Nachricht Access denied for user 'root'@'localhost' (using password: NO).
user543489
@ Bert Dieser Code wird nicht funktionieren. Das password 'mypassword'ist falsch, es sollte sein-password 'mypassword'
Lucio
sollte etwas durch "mypassword" ersetzt werden?
user543489
Ich habe ausgeführt sudo mysqladmin -u root -h localhost -password 'mypassword', aber ich verstehe Access denied for user 'root'@'localhost' (using password: YES).
user543489
@ user543489 Was passiert, wenn Sie eingeben mysql -u root?
Lucio
1

Dies ist seltsam, da MySQL seit 12.04 (vermutlich mit Kubuntu 12.04) Standard ist. Sieht so aus, als ob Ihnen dazwischen ein paar Schritte fehlen. Schauen wir uns das an:

Lassen Sie uns zunächst, wie Sie bereits erwähnt haben, eine Installation durchführen.

sudo apt-get install mysql-server

Nachdem Sie es installiert haben, lassen Sie uns einen kleinen Test versuchen,

sudo netstat -tap | grep mysql

Wenn Sie dies ausführen, sollten Sie diese Antwort sehen,

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

Wenn dies nicht korrekt ausgeführt wird, führen Sie diesen Neustartbefehl aus.

sudo service mysql restart

Nun konfigurieren Sie den Server.

Gehen wir /etc/mysql/my.cnfzu den Grundeinstellungen. Dazu gehören die Protokolldatei, die Portnummer usw. Um beispielsweise MySQL so zu konfigurieren, dass es auf Verbindungen von Netzwerkhosts wartet, ändern Sie die Anweisung bind-address in die IP-Adresse des Servers:

bind-address            = 192.168.0.5

Danach starten Sie den MySQL-Daemon neu,

sudo service mysql restart

Wenn Sie das MySQL-Root-Passwort ändern möchten, führen Sie Folgendes aus:

sudo dpkg-reconfigure mysql-server-5.5

Der Daemon wird gestoppt und Sie werden aufgefordert, ein neues Passwort einzugeben.

Sobald Sie fertig sind, sollten Sie konfiguriert sein und einige Google-Suchanfragen zeigen Ihnen, wie Sie eine Datenbank erstellen

Quelle: Das Ubuntu Server Handbuch

Haifischfan98
quelle
0

Führen Sie diesen Befehl aus:

sudo dpkg-reconfigure mysql-server-5.5

(5.5 ist die Versionsnummer, passen Sie an, wenn Sie eine andere Version haben)

Auf diese Weise können Sie Ihr MySQL-Root-Passwort festlegen, das Sie dann mit mysqladminund mysql-Befehlen verwenden können.

Nicolas Raoul
quelle
-1

Nachdem Sie MySQL installiert haben, müssen Sie das mysql-root-Passwort festlegen. Um dies zu tun:

Enter the next command in a terminal:

mysql -u root -p

Enter Password: (Enter your password here).
Swathi S
quelle
Dies trägt nichts bei, was in der akzeptierten Antwort noch nicht gesagt wurde.
guntbert
-1

Ich weiß, dass dies 3 Jahre alt ist, aber ich hatte gerade auch dieses Problem und wollte meine Antwort posten, falls jemand die gleiche Suche macht, die ich durchgeführt habe.

mysqladmin: connect to server at 'localhost' failed

Dies weist darauf hin, dass Ihr Benutzer keine Berechtigung zum Herstellen einer Verbindung zur Datenbank selbst hat, bevor er sich überhaupt anmelden kann. Nicht der Datenbankbenutzer, sondern Ihr tatsächlicher Linux-Benutzer. Führen Sie alles als Superuser aus: sudo mysql -u root -p

Nur root (der Linux-Benutzer oder ein Benutzer mit sudo-Berechtigungen) kann sich bei mysql als root (der Datenbankbenutzer) anmelden. Ich konnte nirgendwo eine Dokumentation finden, aber Experimente haben gezeigt, dass dies der Fall ist. Sie können einen neuen Benutzer mit den gleichen Rechten wie der Root-Benutzer erstellen, ohne dass dies Einschränkungen unterliegt.

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;

Jetzt kann "newuser" (oder welcher Name auch immer Sie wählen) ohne sudo angemeldet werden und Sie können es für alle administrativen Anforderungen Ihrer Datenbank verwenden.

WizardStan
quelle
1
Das Wort probablyin einer Antwort zu verwenden, ist verpönt.
WinEunuuchs2Unix
Nun, ich kann mit Sicherheit nicht sagen, dass es nicht getestet wurde, oder?
WizardStan