Einträge zu Tag: MySQL

MySQL-Tabelle leeren

Erstellt: 03.01.2011 11:08

Will man eine Tabelle in MySQL erhalten, diese aber komplett leeren, hilft ein kurzer Befehl weiter:

TRUNCATE `table`;

...und schon ist die Tabelle leergefegt. :)



Tagged: MySQL

Kommentar verfassen | Nach oben

Eine MySQL-Tabelle kopieren

Erstellt: 22.11.2010 10:46

Eine MySQL-Tabelle lässt sich einfach in zwei Schritten kopieren:

Zuerst wird die neue Tabelle (noch leer) erstellt nach dem Vorbild der Alten:

CREATE TABLE `newtable` LIKE `oldtable`;

Danach kann der komplette Inhalt kopiert werden mit:

INSERT INTO `newtable` SELECT * FROM `oldtable`;



Tagged: MySQL

Kommentar verfassen | Nach oben

MySQL: ERROR 1242 (21000): Subquery returns more than 1 row

Erstellt: 16.10.2010 22:14

Wie diese Errormeldung schon recht gut beschreibt, tritt dieser Fehler auf, wenn der Subquery mehr als ein Ergebnis ausspuckt.

Beispielsweise bei einer Abfrage wie folgender kann dies der Fall sein:

SELECT * FROM tabelle1 WHERE zeile = (SELECT zeile FROM tabelle2);

Liefert der Subquery mehr als eine Zeile als Antwort fügt man dem = einfach noch ein ANY hinzu:

SELECT * FROM tabelle1 WHERE zeile = ANY (SELECT zeile FROM tabelle2);

...und als Antwort bekommt man alle Zeilen auf welche die Bedingung mit allen Antwortzeilen des Subquerys passt.

Anmerkung:
= und LIKE kann man zwar in vielen Fällen gleich benutzen, "LIKE ANY" funktioniert allerdings nicht, es muss "= ANY" verwendet werden.



Tagged: Linux MySQL

Kommentar verfassen | Nach oben

Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'

Erstellt: 15.10.2010 22:04

Nach einem "Redumpen" der MySQL-Datenbank kam beim Booten bzw. Starten von MySQL folgender Fehler:

Starting MySQL database server: mysqld ..
Checking for corrupt, not cleanly closed and upgrade needing tables..
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'

Dies geschah, weil ich die Datenbank mit dem Namen "mysql" mit hinein in das Dump nahm mit den Usern.
So war das Passwort von "debian-sys-maint" welches automatisch erzeugt wird bei der Installation nichtmehr mit dem in /etc/mysql/debian.cnf identisch.

Also zuerst das Passwort aus der Datei /etc/mysql/debian.cnf auslesen:

password = PaSsWoRd

Danach das Passwort wieder in die MySQL-Benutzerrechte schreiben:

$ mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO `debian-sys-maint`@`localhost` IDENTIFIED BY "PaSsWoRd" WITH GRANT OPTION;

Und nun sollte MySQL wieder erfolgreich starten:

# /etc/init.d/mysql restart
Starting MySQL database server: mysqld ..
Checking for corrupt, not cleanly closed and upgrade needing tables..



Tagged: Debian Linux MySQL

1 Kommentar | Nach oben

MySQLDump über SSH

Erstellt: 13.10.2010 18:14

Auch "mysqldump" lässt sich wie so vieles recht einfach über SSH übertragen:

# mysqldump -uUser -pPassword --opt --lock-tables=false -A | ssh root@192.168.0.123 "cat > /path/to/dump.sql"
root@192.168.0.123's password: Password [Enter]

...und einen Kaffee holen! :D



Tagged: Linux MySQL Netzwerk ssh

Kommentar verfassen | Nach oben

« ältere Einträge