MySQL-Verbindung mit der MAMP-Datenbank
<p>The <strong>Trackback-URL</strong> is a way for other blogs to reference this article in their own posts. Therefore the whole communication behind this link is for machines and hardly readable for humans.</p><p>If you wanna send a trackback to this URL, please copy it into the trackback/pingback section of your blogging-software. After that everysthing should work automatically. How exactly trackbacks work, can be found e.g. <a href="http://www.sixapart.com/pronet/docs/trackback_spec" target="_blank">here</a>.</p>
Als ich diesen Artikel bei Shaun Inman gelesen habe fiel mir wieder ein, dass ich auch ein wenig an meinem MAMP herummanipuliert habe, damit es so funktioniert, wie ich es will. Wer nämlich zum Beispiel mal versucht hat, mit einem GUI-Tool auf die im MAMP laufenden MySQL-Datenbank zuzugreifen, wird feststellen, dass jeder Versuch vergeblich ist.
Da kann man noch so sorgfältig die Portnummern abtippen. Das Problem liegt an anderer Stelle und zwar in der Art und Weise, wie MAMP die MySQL Datenbank startet. Die Skripts dafür liegen im MAMP-Applikationsverzeichnis also unter /Applications/MAMP/bin. Entsprechend der aufzuführenden Aufgaben gibt es eine startMySQL.sh und eine stopMySQL.sh. Mit zwei kleinen Änderungen hat man den Zugriff für GUI-Tools schnell aktiviert.
Das Problem ist nämlich, dass so ein Tool wie CocoaMySQL bei localhost-Verbindungen den UNIX-Socket verwenden will um die Verbindung herzustellen. MAMP legt die Verbindung allerdings absichtlich in /Applications/MAMP/tmp/mysql/mysql.sock. Der Pfad den MySQL standardmäßig verwenden würde wäre: /tmp/mysql.sock
Um die Funktion von MAMP nicht zu beeinflussen fügt man in die beiden Skripte einfach einen symbolischen Link ein, damit man den Socket auch am Standardplatz findet:
startMySql.sh
/Applications/MAMP/Library/bin/mysqld_safe --port=3389 --socket=/Applications/MAMP/tmp/mysql/mysql.sock --lower_case_table_names=0 --pid-file=/Applications/MAMP/tmp/mysql/mysql.pid --log-error=/Applications/MAMP/logs/mysql_error_log &
ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock
stopMySql.sh
/Applications/MAMP/Library/bin/mysqladmin -u root -proot --socket=/Applications/MAMP/tmp/mysql/mysql.sock shutdown
rm /tmp/mysql.sock
Wer es noch einfach mag, der kann allerdings auch ganz simpel den MAMP-Socket direkt in CocoaMysql angeben:

Trackbacks
Immer wieder werde ich überrascht von den vielfältigen Möglichkeiten, sich mit TextMate das Leben zu erleichtern. Diesmal war es das SQL Bundle, das es mir angetan hat. Dieses Bundle ermöglicht es, SQL Kommandos direkt aus dem Texteditor abzusetz...