Hinweise zu MySQL: Unterschied zwischen den Versionen
Sed (Diskussion | Beiträge) |
Sed (Diskussion | Beiträge) |
||
Zeile 34: | Zeile 34: | ||
# MySQL-Paket-Größen gegen an, wie groß ein Statement werden darf (z.B. bei optimierten Dumps) | # MySQL-Paket-Größen gegen an, wie groß ein Statement werden darf (z.B. bei optimierten Dumps) | ||
max_allowed_packet = 16M | max_allowed_packet = 16M | ||
− | + | ||
# Alle Daten aller InnoDB-Datenbanken in einer Datei (<code>ibdata</code>) gespeichert werden, | # Alle Daten aller InnoDB-Datenbanken in einer Datei (<code>ibdata</code>) gespeichert werden, | ||
# kann diese initial sofort entsprechend eingestellt werden. Die stete Vergrößerung kostet unnötige Resourcen | # kann diese initial sofort entsprechend eingestellt werden. Die stete Vergrößerung kostet unnötige Resourcen | ||
# Diese Option kann nachdem bereits Datenbanken des Typs InnoDB angelegt wurden nicht mehr verändert werden! | # Diese Option kann nachdem bereits Datenbanken des Typs InnoDB angelegt wurden nicht mehr verändert werden! | ||
− | + | innodb_data_file_path = ibdata1:2G:autoextend | |
# Wenn Sie diese Setzung vor dem Anlegen der ersten InnoDB-Datenbank vornehmen, werden alle Tabellen aller | # Wenn Sie diese Setzung vor dem Anlegen der ersten InnoDB-Datenbank vornehmen, werden alle Tabellen aller | ||
# Datenbanken in einzelne Dateien geschrieben (vgl. MyISAM). Das geht aber nicht mehr, wenn bereits Tabellen existieren! | # Datenbanken in einzelne Dateien geschrieben (vgl. MyISAM). Das geht aber nicht mehr, wenn bereits Tabellen existieren! | ||
#innodb_file_per_table | #innodb_file_per_table | ||
− | + | ||
# Cache-Setzungen für InnoDB. Wählen Sie hier eine Poolgröße, die nicht größer als 50-80% des Speichers ist. | # Cache-Setzungen für InnoDB. Wählen Sie hier eine Poolgröße, die nicht größer als 50-80% des Speichers ist. | ||
# Ein Richtwert kann über die gesamte Datengröße aller Datenbanken (+10-20%) ermittelt werden: | # Ein Richtwert kann über die gesamte Datengröße aller Datenbanken (+10-20%) ermittelt werden: |
Version vom 12. November 2013, 12:11 Uhr
Initialisierung
Es ist wichtig, dass ein Root-Passwort für den MySQL-Server gesetzt wird
mysqladmin password geheim
Unter Debian müssen ggf. für den MySQL root-Nutzer noch weitere Rechte gesetzt werden
mysql -u root -pgeheim mysql> GRANT ALL ON *.* TO 'root'@'localhost.localdomain' IDENTIFIED BY 'geheim' WITH GRANT OPTION;
Konfiguration
Die Verbindung zu MySQL über den TCP-Port muss freigegeben werden. Lokale Sockets funktionieren nicht.
Hierzu müssen folgende Setzungen mind. erfüllt sein:
#skip-networking
# Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 127.0.0.1
SuSE Linux Enterprise Server 11 - Service Pack 1
Mit dem Service Pack 1 kann der IES keine Verbindung zur Datenbank mehr herstellen, wenn bind-address mit einer IP-Adresse angegeben wurde. Das Problem kann gelöst werden, indem die bind-address Konfiguration auskommentiert wird.
Ab SLES11 ist es möglich, dass in der /etc/hosts-Datei standardmäßig localhost nur auf ::1 gebunden wird. Dann wird die MySQL-Administration mit dem IES nicht funktionieren. Es muss localhost (auch) auf eine IPv4-Adresse (127.0.0.1) gebunden werden.
Da der IES den transaktionssicheren Datenbanktyp InnoDB verwendet empfehlen sich Anpassungen an folgenden Opionen (my.cnf
):
Bitte wählen Sie hier Größenordnungen, die auf Ihre Hardware abgestimmt sind. Wenn Sie unsicher sind welche Setzungen zu verwenden sind, sprechen Sie uns bitte an. Wir werden Ihnen dann entsprechende Erfahrungswerte nennen können.
# Größe des MySQL-Keys (Optimiert die Suche in MyISAM Daten) key_buffer = 256M
bzw.
key_buffer_size = 256M
# MySQL-Paket-Größen gegen an, wie groß ein Statement werden darf (z.B. bei optimierten Dumps) max_allowed_packet = 16M
# Alle Daten aller InnoDB-Datenbanken in einer Datei (ibdata
) gespeichert werden,
# kann diese initial sofort entsprechend eingestellt werden. Die stete Vergrößerung kostet unnötige Resourcen
# Diese Option kann nachdem bereits Datenbanken des Typs InnoDB angelegt wurden nicht mehr verändert werden!
innodb_data_file_path = ibdata1:2G:autoextend
# Wenn Sie diese Setzung vor dem Anlegen der ersten InnoDB-Datenbank vornehmen, werden alle Tabellen aller
# Datenbanken in einzelne Dateien geschrieben (vgl. MyISAM). Das geht aber nicht mehr, wenn bereits Tabellen existieren!
#innodb_file_per_table
# Cache-Setzungen für InnoDB. Wählen Sie hier eine Poolgröße, die nicht größer als 50-80% des Speichers ist. # Ein Richtwert kann über die gesamte Datengröße aller Datenbanken (+10-20%) ermittelt werden: # SELECT round( sum( data_length + index_length)) TotalSize FROM information_schema.TABLES; innodb_buffer_pool_size=2G innodb_additional_mem_pool_size=20M
# Open-Files und Open-Tables Setzungen. Hierzu ermitteln Sie am besten die Anzahl aller Tabellen im System und wählen entsprechend # etwas höhere Werte: # SELECT count(TABLE_NAME) FROM information_schema.TABLES; # bzw. # SHOW OPEN TABLES; open_files_limit = 6000 table_definition_cache = 1000 table_open_cache = 1000
Weitere Informationen zur Optimierung finden Sie u.a. hier: http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/