Die Installation eines MySQL-Servers auf dem Raspberry Pi ist sehr einfach. Das verwendete Raspbian ist ein speziell für den Raspberry Pi angepasstes Debian und verhält sich auch so.
Installation MySQL-Server auf dem Raspberry Pi
Der MySQL-Server wird mittels apt installiert. Die Installation erfolgt als Benutzer root oder mit sudo. Dies geschieht mit folgenden Zeilen:
apt-get update apt-get install mysql-server
Bei der Installation muss das Passwort für den MySQL-ROOT Benutzer vergeben werden. Dies sollte ein entsprechen starkes Passwort sein ausserdem sollten wir uns dies merken oder notieren. Das Passwort ist für die spätere administrative Verwaltung des MySQL-Servers wichtig.
Optimierung des MYSQL-Servers für den Raspberry Pi
Nachdem der MySQL-Server installiert ist, werden wir feststellen, dass dieser einige Ressourcen von unsere Raspberry Pi verschlingt. Dies liegt daran, dass der MySQL-Server noch mit der default Konfiguration gestartet ist.
Wir können diese Konfiguration nun auf unser „kleines“ System optimieren. Dazu werden von Haus aus gleich ein paar Beispiele mitgeliefert. Wir müssen also nur unsere Konfiguration durch ein passendes Beispiel ersetzen.
Die Konfiguration des MySQL-Server erfolgt in der Datei /etc/mysql/my.cnf. Zuerst fertigen wir von unser Konfiguration ein Backup an.
mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bakup
Dann kopieren wir das Beispiel für einen kleinen Server an diese Stelle.
cp /usr/share/doc/mysql-server-5.5/examples/my-small.cnf /etc/mysql/my.cnf
Da der Raspberry Pi alle Daten auf seiner SD-Card ablegt und die Geschwindigkeit der Schreib/Leses-Zugriffe entsprechend gering ausfällt lohnt es sich für den MySQL-Server einen kleinen Query-Cache zu aktivieren. Dies beschleunigt die Auslieferung der Ergebnisse, da diese solange sich diese nicht geändert haben im RAM zwischengespeichert werden und die Abfrage nicht jedes Mal erneut ausgeführt wird. Dazu setzen wir die Variable query_cache_size auf z.B. 4MB.
Dazu öffnen wir die Datei /etc/mysql/my.cnf
vi /etc/mysql/my.cnf
und fügen die Variable unterhalb von [mysqld] ein:
query_cache_size = 4M
So sollte das Ergebnis in etwa aussehen.
[mysqld] port = 3306 socket = /var/run/mysqld/mysqld.sock skip-external-locking key_buffer_size = 16K max_allowed_packet = 1M table_open_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 128K # enable query_cache query_cache_size = 4M
Die Größe des Query Caches kann auch größer gewählt werden, mit dieser Einstellung hat man aber erstmal ein solide Grundlage um den MySQL-Server seinen Bedürfnissen anzupassen. Wunder sollte man aber keine erwarten der Raspberry Pi ist nicht für seine Performance bekannt :D
Nach jeder Änderung in dieser Datei muss der Server neu gestartet werden um die Änderungen zu übernehmen.
service mysql restart
Es lohnt wie immer ein Blick in die Dokumentation vom MySQL.
Wie währen die optimalen MySQL Eisntellungen für den Raspberry Pi 3 ???
Hallo,
da habe ich leider keinen da um das mal zu testen. Du kannst auch einfach Deine Anwendung eine Weile laufen lassen und dann das Tool von http://mysqltuner.com/ ausführen. Der mysqltuner zeigt Dir dann die entsprechenden Variablen die Du optimieren musst (kannst).
Mit ein wenig probieren und testen findest Du so sicher den optimalen Kompromiss zwischen Performance und Ressourcenschonung.
Du kannst Deine Erkenntnisse auch gern hier mitteilen.
Hallo und erst mal ein Dankeschön für diese Anleitung…..
…. aber jetzt mal eine Frage von einem Noob:
wenn ich die Zeile im Verzeichnis my.cnf geändert hab, wie speicher ich diese dann ab ?
mfg
Hallo marquess,
einfach im vim
esc-taste:wq
eingeben und die Datei wird geschlossen und gespeichert. Mann kann auch jeden anderen Editor wie z.B. nano verwenden.
Eine kleine Kurzdokumentation zu den Tastenkombinationen in vim gibts z.B. hier.
Hallo,
ich habe ein kleines Problem. Bei der Installation werde ich nicht aufgefordert das MySQL root Passwort zu setzen. Ohne Passwort kann ich mich auch nicht anmelden.
Ich habe auch schon versucht das Passwort zu ändern, indem ich den MySQL Server im Abgesicherten Modus starte. Allerdings hat das auch nicht geholfen.
Es wird kein Passwort mehr gesetzt in der aktuellen Version.
Zugriff auf die Datenbank bekommst du nur als Administrator z.B. mit
$ sudo su
$ mysql -u root -p
jetzt Passwort leer lassen und einfach enter. Nun kann ein neues Passwort auf der mysql Console gesetzt werden
Einfach im Terminal mysql_secure_installation aufrufen und dann ein Passwort für „root“ vergeben.