Home   Profil   Fun
#57 Linux  05.04.2009

Typische MySQL-Kommandos


Diese Kommandobeispiele sind für die MySQL-Shell, daher muss man sich zuerst bei MySQL einloggen.
mysql -uroot -p

Zeige das Kommando, welches zur Erzeugung der Tabelle verwendet wurde.
mysql>show create table table1;

Zeige das Kommando, welches zur Erzeugung der Datenbank verwendet wurde.
mysql>show create database db1;

Zeige die Eigenschaften einer Tabelle an.
mysql>describe table1;

Zeige globale Variablen des Servers, die mit dem Zeichensatz zu tun haben.
mysql>show global variables like 'character_set%';

Ändere den Zeichensatz des Servers oder einer einzelnen Datenbank.
mysql>set character_set_server= utf8;
mysql>set character_set_database= utf8;

Eine Spalte einer Tabelle umbenennen.
mysql>alter table table1 change columnnameold columnnamenew int;

Ändere den Zeichensatz einer Tabelle auf latin1 und setze die Sortierung auf latin1_german1_ci.
mysql>alter table table1 convert to charset latin1 collate latin1_german1_ci;

Aktualisiere den Inhalt einer ganzen Tabellenspalte, aber nur dort wo id den Wert 3 hat.
mysql>update table1 set column1='new string' where id=3;

Aktualisiere den Inhalt einer ganzen Tabellenspalte mit Einbezug des gegenwärtigen Inhalts.
mysql>update table1 set column1=concat('string1',column1,'string2');

Zeige die Werte einer Spalte im hexadezimalen Format.
mysql>select hex(column1) from table1;

Erzeuge einen neuen Benutzer / Ändere die Berechtigungen für einen bestehenden Benutzer.
mysql>grant all privileges on db1.* to 'username'@'servername' identified by 'password';

Ändere das Passwort eines Benutzers.
mysql>update mysql.user set password=password('newpassword') where user='root';
mysql>flush privileges;

Zeige die Berechtigungen für einen bestimmten Benutzer.
mysql>show grants for 'username'@'servername';

Exportiere die Tabelle table1 in eine CSV-Datei.
mysql>select * from table1 into outfile '/root/data.csv';

Importiere eine CSV-Datei in eine Tabelle (diese Art des Imports ist extrem performant).
mysql>load data local infile '/root/data.csv' into table test fields terminated by ',' optionally enclosed by '"' lines terminated by '\n';

Erstelle eine neue Tabelle.
mysql>create table test (id int, col1 varchar(32), col2 varchar(32));

Füge in die Tabelle test einen neuen Eintrag ein.
mysql>insert into test (id,col1,col2) values (2,'string1','string2');

Ermittle den md5-Hash für den String 'password'.
mysql>select MD5('password');

Setze ein Read-Lock auf alle Tabellen aller Datenbanken. Jetzt können die Daten nur noch gelesen, aber nicht mehr geändert werden. Zu beachten ist hier, dass das Lock aber nur solange besteht, solange die MySQL-Session von wo man das Lock gesetzt hat aktiv ist! Logt man sich aus MySQL aus ist auch das Lock aufgehoben!
mysql>flush tables with read lock;

Entferne das Lock wieder, sodass man Daten wieder schreiben kann.
mysql>unlock tables;

Entferne alle Berechtigungen eines Benutzers (inklusive grant). Behalte den Eintrag des Benutzers jedoch in der Tabelle mysql.user.
Der Benutzer selbst wird also nicht gelöscht.
mysql>revoke all privileges, grant option from 'user19'@'localhost';

Entferne den Benutzer ganz (Berechtigungen und Eintrag in mysql.user).
mysql>drop user 'user19'@'localhost';

Prüfe alle Datenbanken. Dieser Befehl wird direkt aus der Shell aufgerufen.
# mysqlcheck -uroot -p --port 3306 --all-databases