| | 1 | {{{ |
| | 2 | Various BOINC tools depend on a Python extension module called "MySQLdb". You |
| | 3 | can get the source here: |
| | 4 | |
| | 5 | http://sourceforge.net/projects/mysql-python |
| | 6 | |
| | 7 | WARNING: currently (2003/08/28) BOINC requires version 0.9.2 of |
| | 8 | Python-MySQLdb, however this could be backported to 0.9.1 in the future as |
| | 9 | many Linux distributions seem to have 0.9.1. |
| | 10 | |
| | 11 | |
| | 12 | INSTALLATION INSTRUCTIONS |
| | 13 | ========================= |
| | 14 | |
| | 15 | Lines beginning with "$" indicate example commands to type in bourne shell. |
| | 16 | |
| | 17 | Lines beginning with "#" indicate example commands to type with write access |
| | 18 | to the install location (i.e. su or sudo) |
| | 19 | |
| | 20 | Lines beginning with ">>> " indicate example commands to type in Python. |
| | 21 | |
| | 22 | The `shared module' options build a shared library for the Python-MySQLdb |
| | 23 | module that is loaded at Python run-time. This requires that you have a |
| | 24 | shared version of the MySQL client library installed, i.e. libmysqlclient.so. |
| | 25 | |
| | 26 | Debian Linux: shared module |
| | 27 | --------------------------- |
| | 28 | 1. Install |
| | 29 | # apt-get install python-mysqldb |
| | 30 | |
| | 31 | [ 2003/07: if you have multiple Python versions installed you may want to do |
| | 32 | # apt-get install python2.2-mysqldb |
| | 33 | or |
| | 34 | # apt-get install python2.3-mysqldb |
| | 35 | ] |
| | 36 | |
| | 37 | Red Hat Linux: shared module |
| | 38 | ---------------------------- |
| | 39 | 1. Download MySQL-python |
| | 40 | $ wget http://easynews.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python2-0.9.2-1.i386.rpm |
| | 41 | |
| | 42 | 2. Install |
| | 43 | # rpm -i MySQL-python2-0.9.2-1.i386.rpm |
| | 44 | |
| | 45 | Other Unix/Linux: shared module |
| | 46 | ------------------------------- |
| | 47 | 1. Download MySQL-python |
| | 48 | $ wget http://easynews.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python-0.9.2.tar.gz |
| | 49 | |
| | 50 | 2. Unpack |
| | 51 | $ gunzip -c MySQL-python-0.9.2.tar.gz | tar xf - |
| | 52 | |
| | 53 | 3. Build |
| | 54 | $ cd MySQL-python-0.9.2 |
| | 55 | $ python setup.py build |
| | 56 | |
| | 57 | 4. Install |
| | 58 | # python setup.py install |
| | 59 | |
| | 60 | Unix/Linux: compiled statically into Python |
| | 61 | ------------------------------------------- |
| | 62 | 1. Download MySQL-python |
| | 63 | $ wget http://easynews.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python-0.9.2.tar.gz |
| | 64 | |
| | 65 | 2. Unpack |
| | 66 | $ gunzip -c MySQL-python-0.9.2.tar.gz | tar xf - |
| | 67 | |
| | 68 | 3. Download Python |
| | 69 | $ wget http://python.org/ftp/python/2.3/Python-2.3.tgz |
| | 70 | |
| | 71 | 4. Unpack |
| | 72 | $ gunzip -c Python-2.3.tgz | tar xf - |
| | 73 | |
| | 74 | 5. Copy MySQL files |
| | 75 | $ cp MySQL-python-0.9.2/{*.c,*.h} Python-2.3/Modules/ |
| | 76 | $ cp MySQL-python-0.9.2/_mysql_exceptions.py Python-2.3/Lib/ |
| | 77 | $ cp -r MySQL-python-0.9.2/MySQLdb Python-2.3/Lib/ |
| | 78 | |
| | 79 | 8. Enter the MySQL module in the Python extension setup file. |
| | 80 | $ cd Python-2.3/ |
| | 81 | $ perl -wpi.bak -e "s,^_sre _sre.c,_mysql _mysql.c `mysql_config --cflags` `mysql_config --libs`\n$&," Modules/Setup |
| | 82 | (This adds the line '_mysql _msql.c [flags]' to Modules/Setup) |
| | 83 | |
| | 84 | $ perl -wpi.bak -e 's,^LIBSUBDIRS=\s+,$&MySQLdb ,' Makefile.pre.in |
| | 85 | (This adds MySQLdb to the list of libraries to install) |
| | 86 | |
| | 87 | 7. Configure python |
| | 88 | $ cd Python-2.3/ |
| | 89 | $ ./configure --prefix=/usr/local |
| | 90 | [or whatever path you want instead of /usr/local] |
| | 91 | |
| | 92 | 8. Build |
| | 93 | $ make |
| | 94 | |
| | 95 | Troubleshooting: |
| | 96 | If you get undefined symbols or other compile errors in |
| | 97 | _mysql.c you probably didn't add the correct include |
| | 98 | directory for mysql. If you get unresolved symbols or other |
| | 99 | link errors involving _mysql.o or libmysql.a you probably |
| | 100 | didn't add the correct libraries. |
| | 101 | |
| | 102 | You may want to check Python and MySQLdb are working before installing |
| | 103 | by running ./python; see below for instructions. |
| | 104 | |
| | 105 | 9. Install |
| | 106 | $ cd ../Python-2.3/ |
| | 107 | # make install |
| | 108 | |
| | 109 | Windows: pre-built binary |
| | 110 | ------------------------- |
| | 111 | There is a built python executable available at the URL listed. |
| | 112 | |
| | 113 | Does it work? |
| | 114 | ============= |
| | 115 | You can check if your Python and/or MySQLdb was compiled and installed |
| | 116 | correctly like this: |
| | 117 | |
| | 118 | $ python |
| | 119 | >>> import MySQLdb |
| | 120 | >>> MySQLdb.version_info |
| | 121 | >>> MySQLdb.connect(db='databasename', user='username') |
| | 122 | }}} |