====== 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.