MySQL - Kommandozeile
Die wichtigsten mySQL Befehle...
Dienstprogramm 'mysql' starten[Bearbeiten]
mysql -p<Paßwort> -u <Benutzername> <DB-Name>
oder
mysql -u <Benutzername> -p <DB-Name> Enter password: ********
Datenbank wechseln - use[Bearbeiten]
Datenbank erstellen - CREATE DATABASE[Bearbeiten]
CREATE DATABASE dbName;
Dateien abarbeiten[Bearbeiten]
ateien abarbeiten Wie oben schon erwähnt, kann man die Befehle auch mit einem ASCII[*]-Editor in eine Datei schreiben und diese dann abarbeiten lassen. Der Aufruf, der das Abarbeiten der Datei startet, ähnelt dem normalen mysql-Aufruf:
mysql -p{Paßwort} -u{Benutzername} {DB-Name} < dateiname
Alle (Fehler-)Meldungen, die normalerweise angezeigt werden, werden auf den Bildschirm geschrieben.
Backup[Bearbeiten]
z.B. mit mysqldump - langsam aber sehr sicher (hohe Portabilität, im laufenden Betrieb)
mysqldump -u username -pdbname > dateiname.sql Enter password: xxx
wieder einspielen[Bearbeiten]
sql-Datei hochspielen (FTP o.ä.) einspielen wie in Dateien abarbeiten beschrieben:
mysql -u username -p dbname < dateiname
oder
mysql -u username -pMeinPasswort dbname < dateiname
Datenbank sichern mit mysqldump[Bearbeiten]
Alle Datenbanken sichern[Bearbeiten]
Basiskommando
mysqldump -u root -p --all-databases > alldb.sql
oder
mysqldump -u root -p --opt --all-databases > alldb.sql mysqldump -u root -p --all-databases --skip-lock-tables > alldb.sql
zurückimportieren
mysql -u root -p < alldb.sql
Datenbanktabellen mit SQL Datei Erstellen[Bearbeiten]
Kurzanleitung zur Anlage einer Database und einer Tabelle in MySQL
Werden mehrere SQL-Kommandos benötigt, empfiehlt es sich, diese in einer einfachen ASCII-Textdatei abzulegen. Dann können sie leicht editiert und (eventuell geändert) wiederholt eingelesen werden. Deshalb erstellen wir eine Datei 'MeineDb.sql' mit folgendem Inhalt:
-- SQL-Datei für MySQL
-- Beim ersten Laden muss die folgende Zeile auskommentiert sein,
-- bei wiederholten Versuchen muss sie aktiviert sein ('--' entfernen):
-- DROP DATABASE MeineDb;
CREATE DATABASE MeineDb;
SHOW databases;
USE MeineDb;
CREATE TABLE MeineTestTabelle ( i INT, c CHAR(3), s VARCHAR(8), dt DATE );
CREATE TABLE MeineAdressen ( Name VARCHAR(16), Plz INT, Ort VARCHAR(16) );
SHOW tables;
INSERT INTO MeineTestTabelle VALUES ( 11, 'ABC', 'Blubb', '2000-01-01' );
INSERT INTO MeineTestTabelle VALUES ( 12, 'ab', 'Blabla', '2000-12-31' );
INSERT INTO MeineTestTabelle VALUES ( 42, 'xy', 'äöüß§€', '2005-06-06' );
SELECT * FROM MeineTestTabelle;
INSERT INTO MeineAdressen VALUES ( 'Achim', 52078, 'Aachen' );
INSERT INTO MeineAdressen VALUES ( 'Alexander', 52134, 'Herzogenrath' );
INSERT INTO MeineAdressen VALUES ( 'Helmut', 52066, 'Aachen' );
INSERT INTO MeineAdressen VALUES ( 'Josef', 52070, 'Aachen' );
INSERT INTO MeineAdressen VALUES ( 'Manfred', 52146, 'Würselen' );
INSERT INTO MeineAdressen VALUES ( 'Patrick', 52074, 'Aachen' );
INSERT INTO MeineAdressen VALUES ( 'Roland', 52134, 'Herzogenrath' );
INSERT INTO MeineAdressen VALUES ( 'Torsten', 52072, 'Aachen' );
INSERT INTO MeineAdressen VALUES ( 'Werner', 52066, 'Aachen' );
SELECT * FROM MeineAdressen;
Ausführen:
mysql -uroot -pmysqlpwd < MeineDb.sql
Testen mit:
mysql -uroot -pmysqlpwd MeineDb select * from MeineTestTabelle; \q
ergibt:
+------+------+--------+------------+ | i | c | s | dt | +------+------+--------+------------+ | 11 | ABC | Blubb | 2000-01-01 | | 12 | ab | Blabla | 2000-12-31 | | 42 | xy | äöüß§€ | 2005-06-06 | +------+------+--------+------------+
Der String 'äöüß§€' wird im Kommandozeilenfenster beim üblicherweise eingestellten Characterset falsch dargestellt, ist aber trotzdem korrekt gespeichert.