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;