====== MySQL ======
===== Befehle =====
**Linux-Shell:**
mysql -u root -p # mysql mit Benutzer root ausführen
mysqldump database -u root -p > dump.sql # Dump der DB "database"
mysql -p database -u root -p < dump.sql # Dump der DB "database" einspielen
mysqldump -u root -p --databases database --result-file=dbdata.sql
**MySQL-Shell:**
use datenbankname; # Datenbank "datenbankname" verwenden
SHOW DATABASES; # Alle Datenbanken anzeigen
SHOW TABLES; # Alle Tabellen in der ausgewählten Datenbank anzeigen
\q # MySQL-Shell beenden
show variables like "character_set_database"; # Character-Set der Datenbank anzeigen
show variables like "collation_database"; # Kollation der Datenbank anzeigen
SHOW FIELDS FROM tabelle; # Struktur einer Tabelle anzeigen
DESCRIBE user; # " " " "
show grants; # Berechtigungen für angemeldeten user anzeigen
show grants for 'user'@'10.1.2.3'; # Berechtigungen für user mit ip anzeigen
ALTER TABLE t1 RENAME t2; # Tabellennamen ändern
ALTER TABLE t2 DROP COLUMN c; # Spalte "c" löschen
ALTER TABLE t2 ADD d TIMESTAMP; # Timestamp-Spalte "d" hinzufügen
DELETE FROM table; # Inhalt der Tabelle "table" löschen
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name # DB-Löschen
**Benutzer mit vollen, lokalen Rechten nur für die dazu erstellte DB**
CREATE USER 'owncloud'@'localhost';
GRANT USAGE ON * . * TO 'owncloud'@'localhost' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREATE DATABASE IF NOT EXISTS `owncloud`;
GRANT ALL PRIVILEGES ON `owncloud` . * TO 'owncloud'@'localhost';
SET PASSWORD FOR 'owncloud'@'localhost' = PASSWORD('password123');
FLUSH PRIVILEGES;
**Auto Increment Index wieder auf 1 setzen**
ALTER TABLE `tabelle` AUTO_INCREMENT = 1;
** Get Tables Sizes from all DBs **
SELECT
TABLE_NAME AS `Table`,
ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
FROM
information_schema.TABLES
WHERE
TABLE_SCHEMA = "$DB_NAME"
ORDER BY
(DATA_LENGTH + INDEX_LENGTH)
DESC;