Mysql ist die wohl beliebteste Datenbank unter Linux.
Installation folgender Debian-Pakete für ein vernünftiges Grundsystem:
Als erstes sollte man per
mysqladmin -u root password meinpasswort
sein root-Passwort neu setzen. Dann kann man mit
mysql -u root -p
eine mysql-Shell bekommen, um z.B. Datenbanken und Benutzer anzulegen. Dies geht z.B. so:
mysql> CREATE DATABASE datenbank; mysql> GRANT ALL PRIVILEGES ON datenbank.* TO benutzer@localhost IDENTIFIED BY 'passwort'; mysql> GRANT SELECT ON mysql.db TO benutzer@localhost; mysql> GRANT SELECT ON mysql.tables_priv TO benutzer@localhost; mysql> QUIT
Alternativ kann man natürlich hierzu auch die Weboberfläche von
phpmyadmin unter http://localhost/phpmyadmin
aufrufen. Dabei sollte
man aber beachten, daß die Passwörter unverschlüsselt übers Netz
gehen, wenn man nicht auf "localhost" arbeitet und kein HTTPS
benutzt.
Meistens ist es so, daß man nur einen einzelnen Benutzer benötigt, der dann Zugriff auf eine einzelne Datenbank bekommt, um ein bestimmtes Programm laufen zu lassen. Das müsste bis hierhin problemlos möglich sein.
Die MySQL-Anleitung
ist sehr ausführlich und hilft eigentlich in allen
Lebenslagen. Evtl. ist die lokale Anleitung (per DwwwHilfe bzw. in
/usr/share/doc/mysql-doc gut zu finden) die bessere Alternative,
weil sie wirklich dieselbe Programmversion beschreibt, die auch
installiert ist. Also: Wer lesen kann, ist klar im Vorteil!
In der Debian-Grundeinstellung ist der Zugriff vom Netzwerk aus gesperrt (nur localhost). Um das zu ändern, muss in der Datei /etc/mysql/my.cnf der Eintrag skip-networking auskommentiert werden. Danach den Server mit /etc/init.d/mysql restart neu starten und fertig.
Wer mal beim rumspielen aus Versehen den root-Benutzer gelöscht hat, bzw. dessen Passwort vergessen hat, kann den Server mit
mysqld --skip-grant-tables
starten und dann einen neuen User anlegen. (Bei Problemen gibts dazu noch mehr in der FAQ auf der Webseite) -- ThomasBayen
MySQL ist dual-lizensiert, d.h. es steht einerseits unter der GPL, kann aber andererseits auch von der Firma mysql kommerziell lizensiert werden. Was kann man nun tun, wenn man ein kommerzielles Programm schreiben möchte?
Dazu ist zuerst mal zu sagen, daß es nach allen Auslegungen der GPL kein Problem ist, den GPL-Mysql-Server gleichzeitig mit einem eigenen, proprietären, Programm auf eine CD zu packen. Beide Programme laufen ja letztlich eigenständig und das mysql sollte natürlich alle GPL-Bedingungen erfüllen (Quelltext und Lizenz beilegen etc.). Etwas komplizierter ist die Frage nach dem Treiber, denn dieser steht ebenfalls unter der GPL und wird ja normalerweise in unser Programm hineingelinkt. Nachdem über diese Frage in der LUG bereits sehr ausführlich diskutiert worden ist und ich diese Frage jetzt für mich selber auch nochmal gestellt hatte, habe ich nach einigen Recherchen folgende Möglichkeiten festgestellt. Das hier gesagte gilt für den JDBC-Treiber, den auch die Diskussionen in der LUG ausgelöst hat.
und ist bis Version 2.x unter der LGPL veröffentlicht worden. Diese Lizenz erlaubt eine Mischung mit proprietärem Code, wenn der Treiber nur als Bibliothek eingebunden wird. Was genau der Nachteil an dieser älteren Version ist, kann ich nicht sagen, könnte mir aber gut vorstellen, daß die Unterschiede bei normaler Nutzung der Datenbank nicht dramatisch sind.
bezieht sich nicht auf das ganze Programm, wenn dieses ohne den GPL-Teil ein eigenständiges Werk ist. Hier sollte eine Lösung liegen: Man schreibt sein Programm so, daß es unabhängig vom Datenbank-Treiber ist. Das ist sowieso immer eine gute Idee. :-) Man kann als Beispiel den HSQLDB oder Postgresql-Treiber beilegen (oder den Mysql 2.x-Treiber) und fertig. Dann sollte man aber auch als Option ein eigenes Paket mit dem GPL Mysql-Treiber beilegen. Die Installation des Treibers (quasi als Plugin) nimmt dann erst der Anwender vor, wenn er dies möchte. Dadurch, daß das Programm auch ohne diesen eigenständig ist, erstreckt sich die GPL nun nur auf diesen Treiber.