Kleine Befehlszeilen-Referenz für MySQL.
Server-Infos auslesen
| Beschreibung |
Befehl |
Bemerkung |
| Server-Version auslesen |
select @@version; |
|
| MySQL-Konfiguration auslesen |
show variables; |
|
| MySQL-Konfiguration auslesen (Gefiltert) |
show variables like ‘%max%’; |
|
| Server-Status auslesen |
status; |
MySQL-Version, Charset, Uptime etc. |
Benutzerverwaltung
Dafür muss ggf. die MySQL-DB verwendet werden:
use mysql;
| Beschreibung |
Befehl |
Bemerkung |
| Zeige alle Benutzer mit Host |
select user,host FROM mysql.user; |
|
| Zeige momentan verwendeten Benutzer |
select user() FROM mysql.user; |
|
| Setze Root-Passwort zurück |
alter user ‘root’@’localhost’ identified by ‘MeinPasswort’;flush privileges; |
|
| Lege einen Benutzer an |
create user ‘USER’@’localhost’ IDENTIFIED BY ‘PASSWORT’; |
|
| Zeige Berechtigungen eines Benutzers |
show grants for ‘root’@’localhost’; |
|
| Benutzer auf alle Tabellen einer DB berechtigen |
grant all privileges ON MeineDB.* to ‘USER’@’localhost’; |
|
| Berechtigungen eines Benutzers zurückziehen |
revoke privileges ON asset.* FROM ‘USER’@’localhost’; |
|
| Benutzer löschen |
drop user ‘USER’@’localhost’; |
|
Datenbanken
| Beschreibung |
Befehl |
Bemerkung |
| Datenbanken anzeigen |
show databases; |
|
| In Datenbank wechseln |
use DATENBANK; |
|
| Zeichensatz einer DB anzeigen |
select default_character_set_name FROM information_schema.SCHEMATA WHERE schema_name = “DATENBANK”; |
|
| Datenbank anlegen |
create database DATENBANK; |
|
| Datenbank löschen |
drop database DATENBANK; |
|
Tabellen abfragen
| Beschreibung |
Befehl |
Bemerkung |
| Tabellen anzeigen |
show tables; |
|
| Zeige die Struktur einer TABELLE |
describe TABELLE; |
Spaltennamen, Datentypen etc. |
| Zeige alle Spalten und Inhalte einer TABELLE |
select * from TABELLE; |
|
| Zeige die ersten 10 Treffer |
select * from TABELLE limit 10; |
|
| Zähle die Anzahl der Datensätze |
select count(Spalte) from TABELLE; |
|
| Zähle die Anzahl der Datensätze (keine Duplikate) |
select count(distinct(Spalte)) from TABELLE; |
|
| Zeige alle Inhalte, aber ohne Duplikate |
select distinct * from TABELLE; |
|
| Zeige alle Werte NICHT gleich |
select * from Spalte where not Wert = ‘123’; |
|
Tabellen-Struktur anlegen und bearbeiten
| Beschreibung |
Befehl |
Bemerkung |
| Tabellen anlegen |
create table TABELLENNAME ( SPALTE1 varchar(255), SPALTE2 varchar(255), SPALTE3 int ); |
|
| Spalte hinzufügen |
alter table TABELLE add column Spalte24 VARCHAR(10) after Spalte23; |
|
| Spalte entfernen |
alter table TABELLE drop column Spalte24; |
|
| Alle Inhalte einer Tabelle löschen |
delete from TABELLE; |
|
| Tabelle entfernen |
drop table TABELLE; |
|
Tabellen-Inhalte bearbeiten
| Beschreibung |
Befehl |
Bemerkung |
| Inhalt einfügen |
insert into TABELLE (SPALTE1, SPALTE2, SPALTE3) values (‘inhalt1’, ‘inhalt2", ‘inhalt3’); |
|
| Inhalt einfügen (bei Bestehen aktualisieren) |
insert into TABELLE (SPALTE1, SPALTE2, SPALTE3) values (‘inhalt1’, ‘inhalt2’, ‘inhalt3’) on duplicate key update inhalt2=‘WERT’, inhalt3=‘WERT’; |
|
| Inhalt aktualisieren |
update TABELLE set Wert = ‘blabla’ where Spalteninhalt = ‘Spalte1’; |
|
| Zeile löschen |
delete from TABELLE where hostname = ‘HOSTNAME’; |
|
Checks und Reparaturen
| Beschreibung |
Befehl |
Bemerkung |
| Tabelle aus Konsistenz prüfen |
check table mysql.global_priv; |
|
| Tabelle reparieren |
repairtable mysql.global_priv; |
Kann auch mehrmals ausgeführt werden |
Datenbank-Statements per Datei absetzen
Eine Textdatei anlegen, z.B. sql_command.txt:
use DATENBANK;
delete from TABELLE where SPALTE = ‘WERT1’;
delete from TABELLE where SPALTE = ‘WERT2’;
Datenbank-Statement ausführen:
mysql < /tmp/sql_command.txt
Backup und Restore
| Beschreibung |
Befehl |
| mysqldump -uBENUTZER -pPASSWORT DB > /pfad/zum/db_backup.sql |
Backup erstellen |
| mysql -uBENUTZER DB < /pfad/zum/db_backup.dump |
Datenbank wiederherstellen |