While waiting for answers to the above questions, I went ahead and tried the following:
1. Downloaded the RPM for the server's version of MySql: http://downloads.mysql.com/archives/mysql-3.23/MySQL-devel-3.23.57-1.i386.rpm 2. Copy file to server, and extract to a new folder i made called rpmmysql: [EMAIL PROTECTED] gpinero]$ cd rpmmysql/ [EMAIL PROTECTED] rpmmysql]$ rpm2cpio /home/gpinero/MySQL-devel-3.23.56-1.i386.rpm | cpio -d -i 3936 blocks [EMAIL PROTECTED] rpmmysql]$ ls usr [EMAIL PROTECTED] rpmmysql]$ cd usr [EMAIL PROTECTED] usr]$ ls bin include lib [EMAIL PROTECTED] usr]$ cd include/ [EMAIL PROTECTED] include]$ ls mysql [EMAIL PROTECTED] include]$ cd mysql [EMAIL PROTECTED] mysql]$ ls chardefs.h m_ctype.h my_net.h mysql.h sslopt-case.h dbug.h m_string.h my_no_pthread.h mysql_version.h sslopt-longopts.h errmsg.h my_config.h my_pthread.h my_sys.h sslopt-usage.h history.h my_global.h mysql_com.h raid.h sslopt-vars.h keymaps.h my_list.h mysqld_error.h readline.h tilde.h [EMAIL PROTECTED] mysql]$ 3. Edited setup.py to include the new directory. Here's my whole file just in case you need it: #!/usr/bin/env python """\ ========================= Python interface to MySQL ========================= MySQLdb is an interface to the popular MySQL_ database server for Python. The design goals are: - Compliance with Python database API version 2.0 [PEP-0249]_ - Thread-safety - Thread-friendliness (threads will not block each other) MySQL-3.22 through 4.1 and Python-2.3 through 2.4 are currently supported. MySQLdb is `Free Software`_. .. _MySQL: http://www.mysql.com/ .. _`Free Software`: http://www.gnu.org/ .. [PEP-0249] http://www.python.org/peps/pep-0249.html """ import os import sys from distutils.core import setup from distutils.extension import Extension mysqlclient = os.getenv('mysqlclient', 'mysqlclient_r') mysqlstatic = eval(os.getenv('mysqlstatic', 'False')) embedded_server = (mysqlclient == 'mysqld') name = "MySQL-%s" % os.path.basename(sys.executable) if embedded_server: name = name + "-embedded" version = "1.2.1c3" extra_objects = [] if sys.platform == "win32": mysqlroot = os.getenv('mysqlroot', None) if mysqlroot is None: print "You need to set the environment variable mysqlroot!" print "This should be the path to your MySQL installation." print "Probably C:\Program Files\MySQL 4.1\ or something like that." sys.exit(1) include_dirs = [os.path.join(mysqlroot, "include")] library_dirs = [os.path.join(mysqlroot, "libs")] libraries = ['zlib', 'msvcrt', 'libcmt', 'wsock32', 'advapi32'] if mysqlstatic: extra_objects.append(os.path.join( library_dirs[0], mysqlclient+'.lib')) else: libraries.append(mysqlclient) else: def config(what): from os import popen f = popen("mysql_config --%s" % what) data = f.read().strip().split() if f.close(): data = [] return data # This dequote() business is required for some older versions # of mysql_config def dequote(s): if (s[0] == "'" or s[0] == '"') and (s[0] == s[-1]): s = s[1:-1] return s include_dirs = [ dequote(i[2:]) for i in config('include') if i.startswith('-i') ] #include_dirs.append('/usr/local/mysql/include/mysql') #include_dirs=['/usr/local/mysql/include/mysql'] if mysqlclient == "mysqlclient": libs = config("libs") elif mysqlclient == "mysqlclient_r": libs = config("libs_r") elif mysqlclient == "mysqld": libs = config("embedded") library_dirs = [ dequote(i[2:]) for i in libs if i.startswith("-L") ] libraries = [ dequote(i[2:]) for i in libs if i.startswith("-l") ] # Workaround for a pre-4.1.9 bug if "z" not in libraries: libraries.append("z") extra_compile_args = config("cflags") if mysqlstatic: extra_objects.append(os.path.join( library_dirs[0],'lib%s.a' % mysqlclient)) else: libraries.append(mysqlclient) classifiers = """ Development Status :: 5 - Production/Stable Environment :: Other Environment License :: OSI Approved :: GNU General Public License (GPL) Operating System :: MacOS :: MacOS X Operating System :: Microsoft :: Windows :: Windows NT/2000 Operating System :: OS Independent Operating System :: POSIX Operating System :: POSIX :: Linux Operating System :: Unix Programming Language :: C Programming Language :: Python Topic :: Database Topic :: Database :: Database Engines/Servers """ metadata = { 'name': name, 'version': version, 'description': "Python interface to MySQL", 'long_description': __doc__, 'author': "Andy Dustman", 'author_email': "[EMAIL PROTECTED]", 'license': "GPL", 'platforms': "ALL", 'url': "http://sourceforge.net/projects/mysql-python", 'download_url': "http://prdownloads.sourceforge.net/mysql-python/" \ "MySQL-python-%s.tar.gz" % version, 'classifiers': [ c for c in classifiers.split('\n') if c ], 'py_modules': [ "_mysql_exceptions", "MySQLdb.converters", "MySQLdb.connections", "MySQLdb.cursors", "MySQLdb.sets", "MySQLdb.times", "MySQLdb.stringtimes", "MySQLdb.mxdatetimes", "MySQLdb.pytimes", "MySQLdb.constants.CR", "MySQLdb.constants.FIELD_TYPE", "MySQLdb.constants.ER", "MySQLdb.constants.FLAG", "MySQLdb.constants.REFRESH", "MySQLdb.constants.CLIENT", ], 'ext_modules': [ Extension( name='_mysql', sources=['_mysql.c'], include_dirs=include_dirs, library_dirs=library_dirs, libraries=libraries, extra_compile_args=extra_compile_args, extra_objects=extra_objects, ), ], } #include_dirs.append('/usr/local/mysql/include/mysql') include_dirs.append('/home/gpinero/rpmmysql/usr/include/mysql') setup(**metadata) 4. Tried building again: [EMAIL PROTECTED] MySQL-python-1.2.1c3]$ python2.4 setup.py build running build running build_py running build_ext building '_mysql' extension gcc -pthread -shared build/temp.linux-i686-2.4/_mysql.o -lz -lmysqlclient_r -o build/lib.linux-i686-2.4/_mysql.so /usr/bin/ld: cannot find -lmysqlclient_r collect2: ld returned 1 exit status error: command 'gcc' failed with exit status 1 -- http://mail.python.org/mailman/listinfo/python-list