Frage: mysql-server als port installieren

Hallo,

ich versuche vergeblich mysql41-server aus den ports zu installieren.
Dabei möchte ich aber bestimme Optionen miteingebunden habe die bei einer Source-Installation unter Linux immer problemlos funktioniert haben.
z.B.:
Ich möchte das Verzeichnis ./var in dem die Datenbanken dan liegen an einer speziellen Stelle haben und nicht unter /var/db/mysql.

Wenn ich "make LOCALSTATEDIR=/data/mysql/var -DWITH_LINUXTHREADS" mache, installiert er die Datenbanken trotzdem unter /var/db/mysql.

Auch mit "make datadir=/data/mysql/var -DWITH_LINUXTHREADS" und
mit "make DDATADIR=/data/mysql/var -DWITH_LINUXTHREADS" oder auch "make DLOCALSTATEDIR=/data/mysql/var -DWITH_LINUXTHREADS" hab ich keinen Erfolg.

Es sieht danach immer so aus:
/usr/local/libexec/mysqld --defaults-extra-file=/var/db/mysql/my.cnf --basedir=/usr/local --datadir=/var/db/mysql


Unter Linux mit ner Source-Installation funktionieren folgende Parameter beim configure genau so wie sie sollten:
./configure '--prefix=/usr/local/mysql' '--localstatedir=/usr/local/mysql/var' '--enable-thread-safe-client' '--with-pthread'


Jetzt wollte ich der Einfachheit halber auf FreeBSD umsteigen und bin ein wenig enttäuscht das ich dann auch hier wohl wieder mit den Sourcen rumwerkeln muss.
Hat da jemand ne Idee wie ich das mit Ports oder auch mit pkg_add so hinbekommen kann?

Danke für jeden Tipp.
 
Code:
# cd /usr/ports/databases/mysql41-server
# make -DWITH_LINUXTHREADS install clean
# echo 'mysql_enable="YES"' >> /etc/rc.conf
# echo 'mysql_dbdir="/data/mysql/var"' >> /etc/rc.conf
# /usr/local/rc.d/mysql-server.sh start
... und glücklich sein :)

Weitere Parameter kannst du übergeben, indem du folgende Zeile der /etc/rc.conf hinzufügst:
Code:
mysql_args="--skip-grant-tables --one-thread --irgendwelche-mysqld-parameter"

Gruß Björn
 
Coole Geschichte!!!!
Vielen Dank!

Wo kann man den sowas rauskriegen und selbst nachlesen wenns einem keiner sagt?
Im Makefile steht da ja auch nix und sonst heißt die Variable ja meistens "datadir=/yxz".
"mysql_dbdir" hab ich so noch nie gehört und ich installier mysql eigentlich nicht zum ersten mal.
Gibts da unter freeBSD Regeln wann man da was beim "make" der Ports und wann man da was mittels Umgebungsvariablen eingestellt wird. Mich wundert das man das "datadir" oder "db_dir" nicht bei der Installation angeben muss. Schließlich sollten die Daten doch immer im gleichen Verzeichnis zu finden sein.

Hast Du da nen Tipp um sowas auch für etwas abgeänderte Apache-Installationen steht.

Danke nochmal - hast mir sehr geholfen!

Grüße
Georg
 
charger_23 said:
Wo kann man den sowas rauskriegen und selbst nachlesen wenns einem keiner sagt? [...] "mysql_dbdir" hab ich so noch nie gehört und ich installier mysql eigentlich nicht zum ersten mal.
Der MySQL-Port installiert ein Startskript namens mysql-server.sh nach /usr/local/etc/rc.d. Wenn man einen Blick hineinwirft, dann findet man in den einleitenden Kommentaren ein paar Erklärungen und Variablen, die man über rc.conf setzen kann. Letztendlich startet dieses Skript den MySQL-Server mit dem Parameter --datadir=${mysql_dbdir}. Dass dir das bisher noch nicht begegnet ist, liegt vermutlich daran, dass das sehr FreeBSD-spezifisch ist.

Gibts da unter freeBSD Regeln wann man da was beim "make" der Ports und wann man da was mittels Umgebungsvariablen eingestellt wird. Mich wundert das man das "datadir" oder "db_dir" nicht bei der Installation angeben muss. Schließlich sollten die Daten doch immer im gleichen Verzeichnis zu finden sein.
Meiner Erfahrung nach, kann man grundsätzlich davon ausgehen, dass über den make-Aufruf ausschließlich Dinge festgelegt, die nur zur Zeit des Kompilierens festgelegt werden können; es gibt nur wenige Ausnahmen. Alles andere wird in Konfigurationsdateien angegeben. MySQL verfügt nunmal über den --datadir-Parameter, so dass man an die fest einkompilierte Vorgabe, wie auch immer sie lauten mag, nicht gebunden ist und das Datenbank-Verzeichnis anderswo angeben kann. :)

Hast Du da nen Tipp um sowas auch für etwas abgeänderte Apache-Installationen steht.
Apache installiert auch ein Skript nach /usr/local/etc/rc.d, das tun Courier-IMAP und viele andere Ports ebenfalls; der eine bietet mehr Einstellungsmöglichkeiten, der andere weniger.

Björn
 
Ok. Dann werd ich da einfach mal ein bischen mehr lesen müssen.
Danke für Erklärung.

Ich hatte bisher eher mit Linux zu tun und da ist mir diese Konfigurationsvielfalt über die Startskripte bisher nicht nicht begegnet.

Eigentlich kein schlechter Ansatz, diese Parameter beim Start eines Dienstes frei zu vergeben.

Danke nochmal...
 
Back
Top