Ostatecznie rozwiązałem swój własny problem, oczywiście dzięki podświadomej i świadomej pomocy wielu postów, blogów i dzienników pocztowych, które czytałem. Dałbym linki, gdybym pamiętał.
Krótko mówiąc, przeinstalowałem WSZYSTKO za pomocą MacPorts.
Po edycji ~/.bash_profile i skomentowaniu wszystkich poprzednich modyfikacji ${PATH} pobrałem dmg dla Snow Leopard i przebiegł przez jego instalację.
Następnie otwórz terminal i uruchom samodzielną aktualizację.
sudo port selfupdate
sudo port install python26
Ta druga część, czyli instalacja Pythona 2.6, trwała wiecznie. Ale kiedy to się skończyło, wyświetliło mi się następujące pytanie:
To fully complete your installation and make python 2.6 the default, please run
sudo port install python_select
sudo python_select python26
Zrobiłem oba i poszły szybko.
Zapomniałem wspomnieć, jak przydatne jest polecenie „przeszukiwanie portów”. Szukałem „mysql” i podobnych, aby znaleźć coś do wpisania po „instalacji”. Ale kontynuowałem ponowną instalację zarówno klienta, jak i serwera dla MySQL. Być może zrobiłem to w odwrotnej kolejności, ale efekt końcowy zadziałał dobrze.
sudo port install mysql5
...
---> Installing mysql5 @5.1.41_0
The MySQL client has been installed.
If you also want a MySQL server, install the mysql5-server port.
Więc naturalnie:
sudo port install mysql5-server
Uwielbiam to, że tak wiele instalacji macports daje ci informacje zwrotne na temat tego, co dalej. Pod koniec instalacji serwera było napisane:
******************************************************
* In order to setup the database, you might want to run
* sudo -u _mysql mysql_install_db5
* if this is a new install
******************************************************
Dla mnie była to nowa instalacja (nie miała żadnych lokalnych schematów). Dla kompletności i dla mojego własnego odniesienia, oto wynik uruchomienia tego polecenia:
Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/opt/local/lib/mysql5/bin/mysqladmin -u root password 'new-password'
/opt/local/lib/mysql5/bin/mysqladmin -u root -h iMac.local password 'new-password'
Alternatively you can run:
/opt/local/lib/mysql5/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd /opt/local ; /opt/local/lib/mysql5/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /opt/local/mysql-test ; perl mysql-test-run.pl
Please report any problems with the /opt/local/lib/mysql5/bin/mysqlbug script!
The latest information about MySQL is available at http://www.mysql.com/
Support MySQL by buying support/licenses from http://shop.mysql.com/
Prawie skończone. Wcześniej w moim „wyszukiwaniu portów” natknąłem się na ten interesujący port:
py26-mysql @1.2.2 (python, devel, databases) Interfejs Pythona do mysql
Mając wielką nadzieję, że zapewni mi to pakiet MySQLdb, zainstalowałem go (i tak się stało).
sudo port install py26-mysql
Po słowach uruchomiłem interpreter Pythona, który próbował zaimportować MySQLdb, dokładnie na mojej drodze przez cały ten czas.
iMac:~ drhoden$ python
Python 2.6.4 (r264:75706, Dec 15 2009, 18:00:14)
[GCC 4.2.1 (Apple Inc. build 5646) (dot 1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/MySQLdb/__init__.py:34: DeprecationWarning: the sets module is deprecated from sets import ImmutableSet
>>>
Ostrzeżenie, ale zadziałało!!
Jeszcze tylko jedna rzecz:
sudo port install py26-django
Po tym wszystkim mogłem wreszcie uruchomić mój projekt Django i zdalnie połączyć się z serwerem MySQL mojej firmy! Ponowna instalacja Django przy użyciu MacPorts może nie była konieczna, ale nie zamierzałem ryzykować komplikacji.