====== MySQL Datenbankserver ====== {{ :software:logo-mysql.png?200|}}[[wpde>MySQL]] ist ein sehr verbreiteter Datenbankserver für [[wpde>Relationale_Datenbank|Relationale Datenbanken]], der als Open-Source-Version verfügbar ist und besonders für die Integration in Webplattformen bekannt ist. Seit 2010 gehört das Projekt zu [[wpde>Oracle]]. ===== Serverinstallation ===== Die Installation des Servers ist einfach und für alle verbreiteten Linux-Distributionen existiert ein entsprechendes Paket. Für Ubuntu erhält man es mit # apt-get install mysql-server Während der Installation muss ein root-Passwort gesetzt werden. Im späteren Betrieb sollte dieser Nutzer jedoch deaktiviert werden. ===== Verwaltung des Datenbankservers ===== Die Verwaltung des Servers kann über mehrere Plattformen erfolgen: * Per Web-Oberfläche mit [[http://www.phpmyadmin.net/home_page/index.php|phpMyAdmin]] * Mit dem [[http://www.mysql.de/products/workbench/|MySQL Workbench]] von Oracle * Mit dem SQL Client [[http://squirrel-sql.sourceforge.net/|SQirrel]] * Per Shell über ''$ mysql [-uUSERNAME] [-pPASSWORD]'' ===== Tuning des MySQL-Servers ===== Der MySQL-Server ist in seiner Grundkonfiguration nicht für hohe Last ausgelegt, sondern für mimimale Datenbanken und kleine, wenige Queries((Schwartz, Baron; Zawodny, Jeremy D. (2008): High performance MySQL. 2. Aufl. Beijing ;, Sebastopol: O'Reilly.)). Aus diesem Grund sind für einen performanten Webserver verschiedene Änderungen an der Konfigurationsdatei ''my.cnf'' nötig: ^Variable ^Initialer Wert^Konfigurationsempfehlung^ |key_buffer_size| 16M | http://www.semanticblog.eu/2010/01/25/mysql-key-buffer-optimierung/ | ===== MySQL "von außen" erreichbar machen ===== Für Webanwendungen ist es meist nicht notwendig, den Datenbankserver für Anfragen, die nicht über die Schnittstelle localhost (= 127.0.0.1) kommen, zu öffnen, da Web- und Datenbankserver meist auf einem Server laufen. Wird dies trotzdem benötigt, muss man das Netzwerk-Interface dahingehend ändern, dass die Netzwerkkarte "nach extern" eingetragen wird. Folgende Zeite in der ''my.cnf'' ist zu ändern: bind-address = 127.0.0.1 möchte man, dass auf allen Netzwerinterfaces "gelauscht" wird, kann man die Variable wie folgt setzen: bind-address = 0.0.0.0 Wichtig an dieser Stelle ist zu erwähnen, dass die Nutzer bei dieser Konfiguration im Speziellen lediglich die Rechte erhalten dürfen, die sie wirklich benötigen. Gegebenfalls bietet sich eine [[tech:firewall]] an, um unerwünschten Netzwerkverkehr zu verhindern. ===== Zeichenkodierung einer Datenbank ändern ===== Um eine Datenbank z.B, von latin_1 zu utf8 zu konvertieren, hilft folgendes Tutorial (ursprünglich für Typo3): http://blog.mittwald.de/cms/typo3-datenbank-umstellen-von-latin-1-auf-utf-8/ ===== Weitere Themen ===== * MySQL Cluster, siehe hierzu: http://cyrenity.wordpress.com/2010/08/12/howto-setup-mysql-cluster-beginners-tutorial/ * [[software:datenbanken:mysql_replication]] * [[software:datenbanken:mysql_proxy_loadbalancing]] {{tag>mysql datenbank DBMS}}