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` = '<USERNAME>';
Benutzer und Rechte
Nützliche Befehle
- Datenbank anlegen:
CREATE DATABASE <DATABASENAME> CHARACTER SET [CHARACTERSET|utf8mb4] COLLATE [COLLATION|utf8mb4_0900_ai_ci];
- Benutzer anlegen:
CREATE USER '<USERNAME>'@'[<HOSTNAME>|localhost|%]' IDENTIFIED BY '<PASSWORD>';
- Benutzer anzeigen:
SELECT USER FROM mysql.user;
- Passwort ändern:
- als root:
ALTER USER '<USERNAME>'@'[<HOSTNAME>|localhost|%]' IDENTIFIED BY 'auth_string';
- als angemeldeter Benutzer:
SET PASSWORD = '<NEUES_PASSWORD>';
- Benutzer löschen:
DROP USER '<USERNAME>'@'[<HOSTNAME>|localhost|%]';
- Benutzerrechte zuordnen:
GRANT ALL ON [<DATABASENAME.TABLENAME>|*.*] TO '<USERNAME>'@'[<HOSTNAME>|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 [<DATABASENAME.TABLENAME>|*.*] TO '<USERNAME>'@'[<HOSTNAME>|localhost|%]';
- Benutzerrechte anzeigen:
SHOW GRANTS FOR '<USERNAME>'@'[<HOSTNAME>|localhost|%]';
- Benutzerrechte ändern: zuerst alle Rechte entfernen mit
REVOKE ALL PRIVILEGES, GRANT OPTION FROM '<USERNAME>'@'[<HOSTNAME>|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 '<USERNAME>'@'[<HOSTNAME>|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.