MySQL5 Installation auf dem Leopard

Es wird weithin gemunkelt das Rails erst auf einem Mac so richtig Spass macht. Da Aptana leider noch vollkommen buggy ist, habe ich beschlossen das daß sowieso fällige neue Notebook ein Mac wird. Es hat sich gelohnt...wirklich wahr! Alles funktioniert sofort ein einwandfrei. Alles? Nicht alles...

Die MySQL Installation hat mir einen bunten Nachmittag beschert. Das Problem war das ich keinen Zugriff auf den root User bekam. Die Installation unter Macport schien einwandfrei zu laufen, aber allen Anleitungen und Tutorials zum Trotz konnte ich mich nicht mit der Datenbank verbinden. Hier also eine Zusammenfassung der Schritte die bei meinem Leoparden zum Erfolg führten:

1.) Xcode Tools installieren - soll auf der CD sein, die hatte ich aber schon weggepackt. Deswegen habe ca 1.1 GB http://developer.apple.com/tools/download/ gedownloadet

2.) Macports installieren - Die passende Anleitung dazu gibts hier: http://www.macports.org/install.php. Unbedingt auch die Shell Variablen anpassen und

sudo port selfupdate


ausführen. Erst dann sind die Ports richtig installiert.

3.) Jetzt kommt der erste Kunstgriff: Leopard weist den hostname per default als "localhost" aus und das bringt aus Sicht von MySQL alles durcheinander. Es muss zunächst ein neuer Hostname zugewiesen werden - was ungefährlich ist soweit ich das einschätzen kann:

hostname anderhost

4.) Nun die eigentliche Installation des Ports:

# Port installieren
sudo port install mysql5 +server

# Startsrcipte einrichten
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist

# MySQL System Tabellen einrichten
sudo mysql_install_db5 --user=mysql 

5.) Soweit so gut. Jetzt sollte eigentlich Zugriff möglich sein, ist es aber nicht..zumindest bei mir. Folgendes Vorgehen schaffte Abhilfe:

# Den MySQL Server wieder anhalten
/opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper stop

# Den Server kurz von Hand starten aber mit ohne Benutzertabelle laden
/opt/local/lib/mysql5/bin/mysqld_safe --skip-grant-tables

#Den MySQL Client aufrufen, bzw PhpmyAdmin, was jetzt alles funktionieren sollte 
# folgendes Statement absetzen
UPDATE user SET Password=PASSWORD('supergeheim') WHERE User='root'