Tutorial MySQL unter Mac OS 10.4 kompilieren & installieren

moses_78

Aktives Mitglied
Thread Starter
Dabei seit
08.04.2005
Beiträge
1.288
Reaktionspunkte
22
MySQL unter Unix/Mac OS X kompilieren und Installieren

Kompilierung

Diese Anleitung soll auch weniger mit der Konsole vertrauten Leuten die
Kompilierung und Installation eines MySQL-Servers auf einfachstem Weg
erklären.

Hinweis: Eine Raute(#> ) vor den Befehlen bedeutet, dass man root-Rechte
benötigt, um sie auszuführen. Ein Dollarzeichen bedeutet, dass die Rechte
eines gewöhnlichen Benutzers ausreichen. Root-Rechte erlangt man
mit "sudo <Befehl>" oder "su root".

Zuerst müssen wir die aktuellsten Sourcen saugen. Zur Zeit (19.2.'06) ist
die Version 5.0.18 das empfohlene, stabile Release, und steht hier zum Down-
load bereit.

Wir kopieren das heruntergeladene Tar-Archiv nach /Applications (im Finder
"Programme") und entpacken es folgendermaßen (ab diesem Punkt sind alle
weiteren Schritte in der Konsole auszuführen):
Code:
$> cd /Applications
$> tar xvf mysql-5.0.18
Dabei ist zu beachten, dass die Versionsnummern vermutlich eine andere
sein werden. Nun wird mit
Code:
$> cd ./mysql-5.0.18
in das aus dem Entpacken entstandene Verzeichnis gewechselt.

Jetzt kommt der wohl zeitintensivste Teil der Installation, das Kompilieren:
Code:
$> ./configure --prefix=/usr/local/mysql --with-mysqld-user=mysql 
--with-unix-socket-path=/usr/local/mysql/run/mysql.sock
Das configure-Script erstellt ein Makefile, nach welchem MySQL mit
Code:
$> make
kompiliert wird. Dieser Vorgang kann je nach System 5-15 Minuten in An-
spruch nehmen. Die entstandenen Programme, Scripte und Bibliotheken wer-
den jetzt mit
Code:
#> make install
an ihren Bestimmungsort kopiert.
 
Zuletzt bearbeitet:
Installation

Der ganze Kram muss nun konfiguriert werden. Zuerst wechseln wir in das
Installationsverzeichnis:
Code:
$> cd /usr/local/mysql
Das Script "mysql_install_db" erstellt die für den MySQL-Daemon benötig-
ten Tabellen und legt den Ordner "var" an, indem die Datenbanken und Log-
files gespeichert werden.
Code:
#> ./bin/mysql_install_db
In dem Verzeichnis "run" soll zukünftig die "mysql.sock" Datei gespeichert
werden. Wir erstellen es also:
Code:
#> mkdir ./run
Aus Sicherheitsgründen lässt man den MySQL-Server nicht mit root-Rechten
starten, er weigert sich sogar, dies zu tun, und erwartet einen User namens
"mysql", den wir nun erstellen. An einem reinen Unix-System würde man
dies mit
Code:
#> groupadd mysql
#> useradd mysql -G mysql
tun, unter Mac OS X geht man auf das Control-Panel "Benutzer" in den
Systemeinstellungen und erstellt dort einen Benutzer namens "mysql".

Das Installationsverzeichnis muss nun dem neu erstellten Benutzer "mysql"
übergeben werden:
Code:
#> chgrp -R mysql /usr/local/mysql
#> chown -R mysql /usr/local/mysql/run
#> chown -R mysql /usr/local/mysql/var
Der MySQL-Server sollte nun startbereit sein. Er lässt sich mit
Code:
#> /usr/local/mysql/bin/mysqld_safe --user=mysql &
starten. Seh wichtig ist dabei das Ampersand, ohne welches der MySQL-
Daemon im Vordergrund läuft und die weitere Benutzung der Konsole un-
möglich macht. Wenn eine Fehlermeldung beliebiger Art kommt, lohnt sich
ein Blick in die Logdatei:
Code:
#> pico `ls /usr/local/mysql/var | grep .err`
Wer das Problem nicht gelöst bekommt, möge mir eine PM schicken, oder
in den Faden posten...

Nun testen wie den soeben installierten MySQL-Server auf seine Funktion:
Code:
$> /usr/local/mysql/bin/mysql
Die Ausgabe sollte, wenn alles glatt verlaufen ist, so aussehen:
Code:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.18

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
Wir beenden das MySQL-Client-Programm mit "exit;". Der jungfräulich ein-
gerichtete MySQL-Daemon läuft nun, ist jedoch noch nicht mit einem Pass-
wort gesichert, das heißt, jede Person kann von außen auf die Datenbanken
zugreifen, sie ändern und löschen. Um MySQL mit einem Passwort zu schüt-
zen, geben wir folgendes ein:
Code:
$> /usr/local/mysql/bin/mysqladmin -u root password <Passwort>
Über das Programm "mysqladmin" kann man MySQL auch jederzeit wieder
herunterfahren (was zu diesem Zeitpunkt jedoch wenig Sinn machen
würde ;)):
Code:
$> /usr/local/mysql/bin/mysqladmin -uroot -p shutdown
Jetzt auf den MySQL-Server mit dem mitgelieferten Client-Programm
zuzugreifen, sollte folgendes Ergebnis bringen:
Code:
$> [b]/usr/local/mysql/bin/mysql[/b]

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 5.0.18

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> [b]CREATE DATABASE blablub;[/b]
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'blablub'
mysql> [b]exit;[/b]
Man kann die Datenbanken nun noch auslesen, die Daten jedoch nicht än-
dern, und auch keine Datenbanken erstellen. Ruft man den MySQL-Client
nun auf diese Weise auf:
Code:
$> /usr/local/mysql/bin/mysql -uroot -p
Enter password: ******
...hat man Lese- und Schreibrechte für alle Datenbanken.

Hinweis: Die Datenbank "information_schema" sollte man nicht löschen.
Bei älteren Version hieß diese für den MySQL-Server notwendige Datenbank
"mysql", und durch das Löschen dieser habe ich mir 2 oder 3 MySQL-Instal-
lationen zerschossen ;)
 
Zuletzt bearbeitet:
Konfiguration

Jetzt muss der MySQL-Server nur noch so eingerichtet werden, dass er
beim Systemstart ebenfalls hochfährt.

Unter Mac OS X geht man so vor:
Zuerst wird ein Ordner namens "mysql" in dem Verzeichnis "/Library/
StartupItems" erstellt:
Code:
#> mkdir /Library/StartupItems/mysql
In dieses Verzeichnis kommen folgende Dateien:
Code:
#> pico /Library/StartupItems/mysql/StartupParameters.plist
Diese Datei soll folgenden Inhalt bekommen:
Code:
{
  Description     = "MySQL-5.0.18";
  Provides        = ("MySQL");
  Uses            = ("NETWORK", "RESOLVER");
}
Der Text kann dann mit <ctrl> + o, <Enter> gespeichert werden, der Edi-
tor wird dann mit <ctrl> + x verlassen.

Dann muss noch das eigentliche Script erstellt werden:
Code:
#> pico /Library/StartupItems/mysql/mysql
Dieses Script bekommt diesen Inhalt:
Code:
#!/bin/sh

if [ -z $1 ] ; then
    echo "Usage: $0 [start|stop|restart] "
    exit 1
fi

. /etc/rc.common

SCRIPT="/usr/local/mysql/share/mysql/mysql.server"

StartService ()
{
    ConsoleMessage "Starting MySQL database server"
    $SCRIPT start
}

StopService ()
{
    ConsoleMessage "Stopping MySQL database server"
    $SCRIPT stop
}

RestartService ()
{
    ConsoleMessage "Restarting MySQL database server"
    $SCRIPT restart
}

RunService "$1"
Auch hier wird der Text mit <ctrl> + o, <Enter>, <ctrl> + x, <Enter> ge-
speichert, und der Editor verlassen.

Jetzt müssen noch die Zugriffsrechte für das Verzeichnis angepasst werden:
Code:
#> chown -R root /Library/StartupItems/mysql
#> chgrp -R wheel /Library/StartupItems/mysql
#> chmod -R 755 /Library/StartupItems/mysql
#> chmod a-x /Library/StartupItems/mysql/StartupParameters.plist
Fertig!!

Weiterführendes

http://dev.mysql.com/doc/ - Die offizielle MySQL-Dokumentation (Hinweis:
Die deutsche Version ist nicht mehr aktuell!).

MySQL von Paul Dubois - Das Buch über MySQL (englisch)

MySQL Kochbuch - Die hervorragende deutsche Version des Dubois-Buches,
von O'Reilly

http://www.mysql.de/products/tools/administrator/ - MySQL-Interface mit
graphischer Benutzeroberfläche.

http://cocoamysql.sourceforge.net/ - Ein weiterers MySQL-Adminprogramm,
wird nur für den Mac entwickelt.

http://www.phpmyadmin.net/home_page/index.php - Beliebtes PHP-basieren-
des, plattformübergreifendes MySQL-Admin-Programm

Hinweis: Beim Schreiben von MySQL-Datenbankanwendungen, die über
das Internet verfügbar sein sollen, muss man eine große Sicherheitslücke
beachten.

http://www.elektronikschule.de/~grupp/perlcgi/mysql/ - Kleines Beispiel für
die Verwendung von MySQL mit Perl (DBD & DBI).

http://ffm.junetz.de/members/reeg/DSP/node15.html - Kapitel aus dem
PHP-Tutorial von reeg.net über das Zugreifen auf den MySQL-Server mittels
PHP.

http://sourceforge.net/projects/mysql-python/ - Interface für die Verwen-
dung von MySQL mit Python ("MySQLdb")
 
Zuletzt bearbeitet von einem Moderator:
herzlichen dank für diese sehr gute anleitung!
 
Zurück
Oben Unten