MySQL
Erstellung einer Merge Tabelle
Geschrieben von: Michael Bäcker Donnerstag, den 14. Januar 2010 um 12:04 Uhr
Eine Merge Tabelle beinhaltet alle Datensätze der darin vereinten Tabellen. Um eine solche zu Erstellen, muss man die Struktur der anderen Tabellen kennen, da die Merge Tabelle auf dieser Struktur basiert. Hier ein Beispiel aus einer Rechnerdatenbank.
DROP TABLE IF EXISTS `all_rechner`; CREATE TABLE `all_rechner` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `rechnername` VARCHAR(20) NOT NULL DEFAULT '', `domain` VARCHAR(80) NOT NULL DEFAULT '', `rechnertyp` VARCHAR(40) NOT NULL DEFAULT '', `CPU` VARCHAR(40) NOT NULL, `Arbeitsspeicher` VARCHAR(20) NOT NULL, `standort` VARCHAR(20) NOT NULL DEFAULT '', `rack` VARCHAR(10) NOT NULL DEFAULT '', `os` VARCHAR(20) NOT NULL DEFAULT '', `sp` INT(11) NOT NULL, `BIT` VARCHAR(8) NOT NULL, `objectid` VARCHAR(20) NOT NULL DEFAULT '', `identnr` VARCHAR(20) NOT NULL DEFAULT '', `verfahren` VARCHAR(20) NOT NULL DEFAULT '', `umgebung` VARCHAR(20) NOT NULL DEFAULT '', `funktion` VARCHAR(80) NOT NULL DEFAULT '', `abteilung` VARCHAR(20) NOT NULL DEFAULT '', `ansprechpartner` VARCHAR(40) NOT NULL DEFAULT '', `monitoring` TINYINT(1) NOT NULL DEFAULT '0', `backup` TINYINT(1) NOT NULL DEFAULT '0', `kommentar` VARCHAR(255) NOT NULL DEFAULT '', `letztes_update` DATETIME NOT NULL, `repo` VARCHAR(20) NOT NULL, `erstinstall` DATE NOT NULL, PRIMARY KEY (`id`), KEY `rechnername` (`rechnername`) ) ENGINE=MRG_MYISAM DEFAULT CHARSET=utf8 UNION=(`rechner`,`rechner_hpux`,`rechner_solaris`);
Wichtig ist hierbei, dass alle Tabellen genau die gleiche Struktur haben.
MySQL Tuning mit Query Cache
Zuletzt aktualisiert am Donnerstag, den 14. Januar 2010 um 12:09 Uhr Geschrieben von: Michael Bäcker Freitag, den 08. Januar 2010 um 12:51 Uhr
Ein unbegründetes Schattendasein fristet in den meisten Distributionen der Query Cache in MySQL. Doch richtig gesetzt bringt dieser einen gehörigen Performance Boost.
Die Funktionsweise erklärt sich am besten, wenn man den Cache einschaltet und die Auswirkungen betrachtet. Es kann dabei nichts passieren, aber wie immer gilt:
Reset MySQL Password
Zuletzt aktualisiert am Donnerstag, den 14. Januar 2010 um 12:10 Uhr Geschrieben von: Michael Bäcker Mittwoch, den 30. Dezember 2009 um 09:26 Uhr
Zuerst muss man sich auf dem Server anmelden, auf dem der MySQL Server läuft. Man muss in die Datei /etc/my.cnf die Option 'skip-grant-tables' einfügen.
1 |
[mysqld] |
Nun kann man sich beim MySQL Server anmelden mit einem leeren Root Passwort:
root@linux # mysql
mysql>FLUSH PRIVILEGES;
mysql>GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY ‘neues passwort’ WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
mysql>quit
Nun muss man nur noch die oben eingefügte Option ’skip-grant-tables’ wieder aus der Datei /etc/my.cnf wieder auskommentieren.
Nur noch den MySQL Server neu starten. Dann klappts auch wieder mit der Anmeldung.
[mysqld]
default-character-set=latin1
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
set-variable=max_connections=500
#skip-grant-tables