MySQL-Server ?

Styx

Universaldilettant
Hallo Leute,
ich suche eine ordentliche Anleitung zur Einrichtung eines MySQL-Servers unter FreeBSD 5.4. Das habe ich bisher noch nie gemacht. Installiert ist der ganze Spaß schon, aber wie genau kann ich das nun einrichten bzw. starten? Es gibt zwar diverse Anleitungen im Netz, allerdings beziehen die sich in der Regel auf Linux oder gar Windows. Die offizielle Doku geht auch von Linux oder Windows aus und erwähnt nur ein paar Details für FreeBSD 3.x(!), was ja nicht mehr ganz so aktuell ist. ;) Ein Start über Webmin geht auch nicht, da die Modulkonfiguration nicht korrekt zu sein scheint.
Vermutlich ist es ganz simpel, da es nichtmal im Wiki erwähnt wird. Kann mir jemand eine Kurzanleitung geben bzw. hat jemand einen netten Link? Ich bin für jede Hilfe dankbar :)

System:
FreeBSD 5.4p11
Apache 2.2.0_6
PHP5 5.1.2_1
MySQL-Server 4.1.16
 

Elwood

Naiver Mutmaßlicher
Moin,

da du Apache und PHP schon installiert hast, bietet sich eigentlich das wunderbare phpMyAdmin an.

Siehe: /usr/ports/databases/phpmyadmin/

Es hat den Vorteil, dass man MySQL auch mal von entfernten Rechnern einfach administrieren kann.

Elwood

PS: phpmyadmin war vor Jahren für mich die Applikation, die mich zum Programmieren von Webbasierten Anwendungen gebracht hat :)
 

Styx

Universaldilettant
Öhm...soweit ich weiß ist phpmyadmin dazu da die Datenbanken zu pflegen, die sich auf dem Server befinden. Ich will den Server selber einrichten, zur Datenbank bin ich noch gar nicht gekommen.... Oder hat phpmyadmin noch mehr Funktionen?
 

Elwood

Naiver Mutmaßlicher
hi,

na den Port, sprich das Programm, mysql-server hast du doch sicher schon installiert? Das wars dann auch schon (hoffentlich sage ich nix Falsches, ist schon ewig her, das ich meine MySqls aufgesetzt habe).

Die Datenbanken und deren Tabellen kannst du selbstverständlich unter phpmyadmin anlegen/pflegen/importieren/exportieren usw usw. Das Ding ist eine komplette GUI für mysql.

Wenn ich mich nicht täusche, kannst du sogar mit den Defaults von phpmyadmin auf mysql zugreifen. Dies sollte man natürlich dann später absichern (in der config.inc.php).

Cu, Elwood
 

Styx

Universaldilettant
Elwood schrieb:
na den Port, sprich das Programm, mysql hast du doch sicher schon installiert? Das wars dann auch schon (hoffentlich sage ich nix Falsches, ist schon ewig her, das ich meine MySqls aufgesetzt habe).

Sicher habe ich das Programm installiert. Allerdings würde es mich doch sehr stark wundern, wenn man den Server nicht starten muss und er auch keinerlei Konfiguration benötigt. Das würde jeder Anleitung für Windows und Linux widersprechen, die ich gefunden habe!

Wie man mit phpmyadmin arbeitet weiß ich, ich kenne das Programm. Aber wie gesagt, es geht darum den Server an sich einzurichten.
 

Flex6

Well-Known Member
mysql-server bietet schon 3 fertige configs an, die kann man anpassen und unter /etc/my.conf speichern..das ist dann deine eigene config..mysql sollte da schon installiert sein..im handbuch steht von mysql steht auch was dazu
 
Zuletzt bearbeitet:
R

rosa

Guest
Dir fehlt wohl: mysql_install_db ?!

Damit wird unteranderem die eigene mysql db angelegt, ohne dieser wird mysql nicht starten.

Und auch webmin (oder wie der Dreck hiss) noch phpMyAdmin können ohne der DB was anrichten.

Hast Du die db's mittels mysql_install_db angelegt musst du sie noch mysql zu eigen machen: chown -R mysql:mysql /pfad/zu/deiner/db
Dann noch einen Eintrag in die /etc/rc.conf, hierfür schaust du einfach mal in /usr/local/etc/rc.d/mysql-server.sh und danach kannste dein mysql schon mittels dem gerade genannten Skript starten.

Nun aber nicht vergessen das root Passwort zu setzen, dafür gibt es so viele Möglichkeiten wie Wege nach Rom, da findest schon was, da dies auch nicht mehr System spezifisch ist.

Gruß paefchen
 
R

rosa

Guest
Flex6 schrieb:
mysql-serverbietet schon 3 fertige configs an, die kann man anpassen und unter /etc/my.conf speichern..das ist dann deine eigene config..mysql sollte da schon installiert sein..im handbuch steht von mysql steht auch was dazu

/etc ??
schau mal in /usr/local/etc/rc.d/mysql-server.sh.
das steht:
Code:
command_args="--defaults-extra-file=${mysql_dbdir}/my.cnf --user=${mysql_user} --datadir=${mysql_dbdir} --pid-file=${pidfile} ${mysql_args} > /dev/null &"
also Default liegt die my.cnf unter:
/var/db/mysql
wobei ich persönlich es weder für schön halte die DB unter /var zu haben, noch das die config im DB Verzeichnis liegt, für meinen Geschmack gehört die nach /usr/local/etc wo sie bei mir auch liegt.

Gruß paefchen
 

Flex6

Well-Known Member
naja die db vom server liegt unter /var/db/mysql ...in der datei /usr/local/share/mysql/mysql.server steht klar drin wo die config vom server hinkommt..nach /etc/my.conf

ich muß das nochmal korrigieren..den bei mir steht das drin:
/usr/local/bin/mysqld_safe --user=mysql --datadir=${DB_DIR} --pid-file=${PIDFILE} > /dev/null &
echo -n ' mysqld'
also bei mir //etc/my.conf..das kann von version zu version abweichen..also selber nachgucken wo was hinkommt
 
Zuletzt bearbeitet:
R

rosa

Guest
<Korinthenkacken>
Die Config heisst aber immer noch my.cnf, wie auch aus deinem Zitierten Skript hervorgeht ;)
</Korinthenkacken >

OK da steht es wirklich, nur geht das A an der Struktur von FreeBSD vorbei; B sehe ich keinen Grund diesen Skript zu verwenden da der FreeBSD Port einen eignen mitbringt der wunderbar mit dem rc.d zusammen arbeitet.
Oder übersehe ich da gerade was?

Gruß paefchen
 

Flex6

Well-Known Member
hast recht..my.cnf..der server ein 4.0 und älter..das kann bein 4.1 oder 5.x anders sein..siehe anweisung zur my.conf zum starten
 

Styx

Universaldilettant
Vielen Dank an paefchen! :) Deine Tipps haben mir sehr viel weiter geholfen. Der MySQL-Server rennt nun und wird beim booten automatisch gestartet.

Flex6 schrieb:
mysql-server bietet schon 3 fertige configs an, die kann man anpassen und unter /etc/my.conf speichern..das ist dann deine eigene config..mysql sollte da schon installiert sein..im handbuch steht von mysql steht auch was dazu

Ein richtiges config-File habe ich bisher nicht gefunden. Mir würde ja eine Beispieldatei reichen. Wo sollen denn diese 3 configs angeboten werden?
 

free

Well-Known Member
Hi,

ich stehe gerade vor dem selben Problem: make install clean und jetzt??
Kann das nichtmal einer schnell aufschreiben? Ich stell's dann auch ins Wiki...
 

Flex6

Well-Known Member
wartet man bis die installation fertigläuft....:confused: wenn die installation fertig ist den server starten...oder erklär mal dein probs genauer
 
R

rosa

Guest
???

Was aufschreiben? Es ist doch alles schon geschrieben worden?
 

free

Well-Known Member
Naja, zumindest in diesem Thread ist es nicht so richtig aufgeschrieben.
Ich finde es sehr verworren, was hier oben steht und ausserdem stehen da Dinge, die falsch sind:
Der Server startet sehr wohl, ohne dass mysql_install_db ausgeführt wurde... So, und jetzt bin ich verunsichert.
Deshalb dachte ich, dass einer von denen, die sich damit auskennen, das ganze nochmal ohne Fehler zusammenfassen könnten.
 

Flex6

Well-Known Member
manachmal hat mysql probs ins var und /tmp (mysql.sock) zu schreiben und kann nur mit mysql_ install_db gestartet oder die datenbank angelegt werden, das kann von freebsd.- oder mysqlversion abweichen, wenn er so startet ist schön
 
R

rosa

Guest
ja hier im Thread sind dinge aufgetaucht die so bei FreeBSD nicht richtig bzw. unüblich sind sind und das ist die Datei: /etc/my.conf und /usr/local/share/mysql/mysql.server. Erste gibt es nicht und zweite wird nicht (mehr?) benötigt.

MySQL bringt einige »Helfer« mit, darunter gehört auch der Shell-Skript mysql_install_db mit dessen Hilfe »früher« per Hand die MySQL DB angelegt worden ist ohne die mysqld nicht rennen wird.

Auch bis jetzt ist es noch so das MySQL ohne diese nicht starten wird.
Allerdings wird man meist mysqld mit dem rc.d-Skript /usr/local/etc/rc.d/mysql-server.sh »steuern« und nicht mysqld selber.

Dieser Skript überprüft bevor er mysqld startet ob die DB existiert, tut sie das nicht ruft er erst mysql_install_db auf, somit ist es »überflüssig«.
In selbigen Skript werden auch par Werte gesetzt die man mit 3 rc.conf Variablen beeinflussen kann:

mysql_limits, mysql_dbdir, mysql_args

Normal ist das DB Verzeichnis unter /var/db/mysql zu finden (wenn es dann schon angelegt ist) genau da findet man dann auch die my.cnf (wenn man dann eine hat/braucht). Setzt Du nun den dbdir woanders hin, verändert sich natürlich auch der Pfad zur my.cnf.

So.. ich hoffe das war jetzt ausführlich genug?
(Ein blick in /usr/local/etc/rc.d/mysql-server.sh schadet aber auch nicht)

Grüße paefchen

PS: ich beziehe mich hier auf MySQL aus den Ports ab Version 4.1



Edit: Und fürs Wiki, wenn es da wirklich noch nicht steht:

Code:
# cd /usr/ports/databases/mysql50-server/
# make \
? WITH_CHARSET=latin1 \
? WITH_XCHARSET=all \
? WITH_COLLATION=latin1_german1_ci \
? package clean
# echo 'mysql_enable="YES"' >> /etc/rc.conf
# /usr/local/etc/rc.d/mysql-server.sh start
# mysql -u root
...
mysql> SET password = PASSWORD('xxx');
...
mysql> \q
# rm ~/.mysql_history

Achtung: in .mysql_history steht das gesetzte Passwort unteranderem.
Wem das mit dem löschen zu blöde ist, muss halt auf MYSQLADMIN(1) zurückgreifen da hab ich aber den Syntax nicht im Kopf ;)

Das Prozedere ist bei mysql41 identisch.

Die Charset-Geschichte sollte man natürlich auf seine eigenen wünsche anpassen.
Man kann es auch weglassen, dann hat man aber Default »latin1_swedish_ci«

Ansonsten beim installieren mitlesen, da wird das meiste, meine ich mich zu erinnern, auch angezeigt.

Wenn MySQL wirklich mal nicht hochkommt, dann schauen ob /var/db/mysql existiert und die Rechte mysql:mysql sind. Ist dies nicht der Fall sollte man es dann selber machen:

Code:
# mysql_install_db --ldata=/var/db/mysql
# chown -R mysql:mysql /var/db/mysql

Erst jetzt hat man dann die Möglichkeit eine Error-Logfile zu lesen, da sie genau da drinnen liegen sollte:
/var/db/mysql/<hostname>.err

(das ganze ist aus dem Kopf geschrieben und nicht überprüft...)
 
Zuletzt bearbeitet von einem Moderator:

Marvin

Guinnes-suechtiger-BSDler
entschuldige wenn ich hier wieder poebelnd erscheine aber google kennst du anscheinend auch nicht und das freebsd handbuch erst recht nicht oder taeusche ich da? Weil dort steht zum beispiel drin wie man services automatisch startet oder auch wo man die configs findet.
Hier mal nen link nachdem man bei google "howto freebsd apache mysql php" eingetippt und auf suchen geklickt hat.

http://www.howtoforge.com/ultimate_freebsd_media_server
 

Flex6

Well-Known Member
ich habs jetzt nochmal ausgekrahmt weils es mit /etc/my.cnf funktioniert und eventuell auch mit /var/db/mysql/zur cnf, jedenfalls werden änderungen in der /etc/my.cnf im server und client berücksichtigt und auch danach befolgt, version im moment ports mysql5.0, freebsd 6.1...jedenfalls kann man das mit phpmyadmin prüfen und eventuell dann die my.conf im pfad korrigieren
 
Zuletzt bearbeitet:
Oben