====== Nuetzliche Befehle ======
Hier werden einige nützliche Befehle beschrieben, die man in der MySQL-CLI verwenden kann.
===== SHOW ENGINES =====
Mit dem Befehl
SHOW ENGINES;
kann überprüft werden welche Datenbank-Engines die MySQL-Server installation verwenden kann. Beispiele sind: InnoDB, MYISAM, CSV,...
===== Show Connections / Processlist =====
show status where variable_name = 'threads_connected';
oder
show processlist;
oder
select id,
user,
host,
db,
command,
time,
state,
info
from information_schema.processlist;
oder
SELECT * FROM information_schema.processlist WHERE `USER` = '';
===== Benutzer und Rechte =====
===== Nützliche Befehle =====
* Datenbank anlegen: CREATE DATABASE CHARACTER SET [CHARACTERSET|utf8mb4] COLLATE [COLLATION|utf8mb4_0900_ai_ci];
* Benutzer anlegen: CREATE USER ''@'[|localhost|%]' IDENTIFIED BY '';
* Benutzer anzeigen: SELECT USER FROM mysql.user;
* Passwort ändern:
* als root: ALTER USER ''@'[|localhost|%]' IDENTIFIED BY 'auth_string';
* als angemeldeter Benutzer: SET PASSWORD = '';
* Benutzer löschen: DROP USER ''@'[|localhost|%]';
* Benutzerrechte zuordnen: GRANT ALL ON [|*.*] TO ''@'[|localhost|%]' [WITH GRANT OPTION];
Die Option "WITH GRANT OPTION" erlaubt es einem Benutzer selbst Änderungen an Benutzerobjekten vorzunehmen, natürlich muss er auch die jew. "DELETE,CREATE" Rechte haben. \\ Noch ein Beispiel: GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON [|*.*] TO ''@'[|localhost|%]';
* Benutzerrechte anzeigen: SHOW GRANTS FOR ''@'[|localhost|%]';
* Benutzerrechte ändern: zuerst alle Rechte entfernen mit REVOKE ALL PRIVILEGES, GRANT OPTION FROM ''@'[|localhost|%]';
danach Rechte wie oben wieder hinzufügen
* Benutzerrechte reloaden: FLUSH PRIVILEGES;
* Zeile in Tabelle ändern UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
===== Rechte für Backup-Benutzer setzen =====
Für das Backup sollte ein eigener Benutzer verwendet werden.
Folgender Befehl legt die entsprechenden nötigen Rechten an GRANT SELECT, SELECT COLUMN_NAME, SHOW VIEW, LOCK TABLES, RELOAD, REPLICATION CLIENT ON *.* TO ''@'[|localhost|%]';
FLUSH PRIVILEGES;
===== Remote Zugriff erlauben =====
Der Zugriff auf die Datenbanken ist standardmäßig nur vom ''localhost'' erlaubt.
Damit Benutzer von anderen Hosts zugriff erhalten, muss man dies, wie oben bei den Benutzerrechten beschrieben, strikt erlauben.