MySQL
Informationen zur Datenbank aber auch Tipps zur Bedienung etc.
mySQL - Tips und Tricks
mySQL - Cheat Sheet
mySQL auf der Kommandozeile
Codeschnipsel
Typ der Tabellen festlegen
CREATE TABLE `foo` {
...
} ENGINE=InnoDB
CREATE TABLE `bar` {
...
} ENGINE=MyISAM
Typo aller Tabellen auf einmal ändern
Folgendes SQL-Statement erzeugt uns die notwendigen SQL-Kommandos um alle Tabellen in der Datenbank „amel“ auf InnoDB umzustellen, die derzeit noch MyISAM sind:
SELECT CONCAT('ALTER TABLE `',table_schema,'`.`',
table_name,'` engine=MyISAM;')
FROM information_schema.tables
WHERE engine = 'InnoDB' AND table_schema = 'amel';
Dann die erzeugten Statements aus der Druckansicht holen
InnoDB aktivieren
Zitat aus http://www.marmotli.ch/mysql/node35.html
5.2.1 Aktivieren der InnoDB-Tabellen
Das Arbeiten mit dem Tabellentyp 'InnoDB' setzt voraus, dass der MySQL-Server mit diesem Tabellentyp hochgefahren wird.
Unter Debian 3.0 d.h. falls wir MySQL gemäss dieser Anleitung aufgesetzt haben, steht der InnoDB-Tabellentyp zunächst nicht zur Verfügung. Nicht weil MySQL 4.0.13 das nicht unterstützen würde, sondern weil wir die my.cnf-Datei von der Version 3.23.x übernommen haben und das dort nicht aktiviert war. Um die InnoDB-Tabellen nun zu aktivieren, müssen wir einige Änderungen in der Datei '/etc/mysql/my.cnf' vornehmen:
# Read the manual if you want to enable InnoDB! # skip-innodb innodb_data_home_dir = innodb_data_file_path = /var/lib/mysql/ibdata/ibdata1:100M:autoextend
Zunächst muss 'skip-innodb' deaktiviert werden. Danach müssen wir den Speicherort für die Tabellen angeben. Falls wir 'innodb_data_home_dir' leer belassen, verwendet MySQL den normalen Datenpfad der Datenbanken. Dort werden einige Temporär-Dateien erstellt. Den Speicherort für die InnoDB-Tabellen legen wir mit dem Wert 'innodb_data_file_path' fest. Wir verwenden wiederum den Speicherort für die MySQL-Datenbanken sowie das Unterverzeichnis 'ibdata'. Dieses Verzeichnis muss von Hand angelegt werden:
mkdir /var/lib/mysql/ibdata chown -R mysql /var/lib/mysql/ibdata chgrp -R mysql /var/lib/mysql/ibdata
Um die InnoDB-Tabellen endgültig nutzen zu können, müssen wir den MySQL-Server neu initialisieren:
/etc/init.d/mysql restart
Der Neustart dauert einige Sekunden, weil die InnoDB-Tabellen zunächst initialisiert werden müssen. Um zu überprüfen, ob die InnoDB-Tabellen nun aktiviert sind, können wir in '/var/lib/mysql/ibdata' nachsehen. Falls Sie dort eine Datei vorfinden, ist alles ok.
Werte aus Komma getrennter Liste auswerten
Vor allem im Zusammenhang mit Typo3 Datenbanken kommt es oft dazu, daß man integer Werte in Komma-separierten Listen in einem Datenbank vorfindet. Auf diese Weise erzeugt Typo3 in der Standardeinstellung n:m Verknüpfungen (aber auch 1 : n Verknüpfungen).
Beim Auslesen ist das aber eher nachteilig. Eine geschicktere Methode als IN ab mysql 4 (meines Wissens) ist der Befehl FIND_IN_SET.
Die IN - Abfrage ist nur für Ganze Feldlängen zutreffend, also '1','2','3','4','5',usw, ...
Bei der Funktion FIND_IN_SET sucht MySQL in einer bestimmten Zeile und gibt die Stelle zurück an der der Wert in der LISTE steht.
FIND_IN_SET(WERT,LISTE)
In Typo3 gibts auch die Methode:
AND '.$GLOBALS['TYPO3_DB']->listQuery('feldname',5,'tabellenname').'
Die aber ein kompliziertes und wenig Performantes SQL Konstrukt erzeugt.
Vielleicht wird die Funktion ja noch umgebaut ;-)
MySQL - Daten importieren und exportieren
MySQL - Daten importieren und exportieren
MySQL Passwort zurücksetzen
http://localhost/dashboard/docs/reset-mysql-password.html http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html