comparison README @ 0:e48810735f11 MySQLdb

Copying 1.2.1 to be the new trunk
author adustman
date Sun, 02 Apr 2006 18:20:53 +0000
parents
children 7b67220c5109
comparison
equal deleted inserted replaced
-1:000000000000 0:e48810735f11
1 ====================
2 MySQLdb Installation
3 ====================
4
5 .. contents::
6 ..
7
8 Prerequisites
9 -------------
10
11 + Python 2.3.4 or higher
12
13 * http://www.python.org/
14
15 * Versions lower than 2.3 WON'T WORK.
16
17 * 2.4 is the primary test environment.
18
19 * Red Hat Linux:
20
21 - Make sure you have the Python development headers and libraries
22 (python-devel).
23
24 + MySQL 3.23.32 or higher
25
26 * http://www.mysql.com/downloads/
27
28 * Versions lower than 3.22 definitely WON'T WORK.
29
30 * Versions lower than 3.22.19 might not work.
31
32 * MySQL-3.22 might work but isn't supported anymore. It's very old.
33
34 * MySQL-3.23 ought to work, but it's pretty elderly.
35
36 * MySQL-4.0 is supported, but not tested and slightly discouraged.
37
38 * MySQL-4.1 is supported and tested. The prepared statements API is not
39 supported, and won't be until MySQLdb-1.3 or 2.0.
40
41 * MySQL-5.0 is supported and tested, including stored procedures.
42
43 * MaxDB, formerly known as SAP DB (and maybe Adabas D?), is a
44 completely different animal. Use the sapdb.sql module that comes
45 with MaxDB.
46
47 * Red Hat Linux packages:
48
49 - mysql-devel to compile
50
51 - mysql and/or mysql-devel to run
52
53 * MySQL.com RPM packages:
54
55 - MySQL-devel to compile
56
57 - MySQL-shared if you want to use their shared
58 library. Otherwise you'll get a statically-linked module,
59 which may or may not be what you want.
60
61 - MySQL-shared to run if you compiled with MySQL-shared installed
62
63 * Transactions (particularly InnoDB tables) are supported for
64 MySQL-3.23 and up. You may need a special package from your vendor
65 with this support turned on.
66
67 + zlib
68
69 * Required for MySQL-3.23 and newer.
70
71 * Red Hat Linux
72
73 - zlib-devel to compile
74
75 - zlib to run
76
77 + openssl
78
79 * May be needed for MySQL-4.0 or newer, depending on compilation
80 options. If you need it, you probably already have it.
81
82 - you may need openssl-devel on some platforms
83
84 + C compiler
85
86 * Most free software-based systems already have this, usually gcc.
87
88 * Most commercial UNIX platforms also come with a C compiler, or
89 you can also use gcc.
90
91 * If you have some Windows flavor, you usually have to pay extra
92 for this, or you can use Cygwin_.
93
94 .. _Cygwin: http://www.cygwin.com/
95
96
97
98 Building and installing
99 -----------------------
100
101 The setup.py script uses mysql_config to find all compiler and linker
102 options, and should work as is on any POSIX-like platform, so long as
103 mysql_config is in your path.
104
105 Depending on which version of MySQL you have, you may have the option
106 of using three different client libraries. To select the client library,
107 edit the [options] section of site.cfg:
108
109 embedded
110 use embedded server library (libmysqld) if True; otherwise use
111 one of the client libraries (default).
112
113 threadsafe
114 thread-safe client library (libmysqlclient_r) if True (default);
115 otherwise use non-thread-safe (libmysqlclient). You should
116 always use the thread-safe library if you have the option;
117 otherwise you *may* have problems.
118
119 static
120 if True, try to link against a static library; otherwise link
121 against dynamic libraries (default). You may need static linking
122 to use the embedded server.
123
124
125 Finally, putting it together::
126
127 $ tar xfz MySQL-python-1.2.1.tar.gz
128 $ cd MySQL-python-1.2.1
129 $ # edit site.cfg if necessary
130 $ python setup.py build
131 $ sudo python setup.py install # or su first
132
133
134 Windows
135 .......
136
137 I don't do Windows. However if someone provides me with a package for
138 Windows, I'll make it available. Don't ask me for help with Windows
139 because I can't help you.
140
141 Generally, though, running setup.py is similar to above::
142
143 C:\...> python setup.py install
144 C:\...> python setup.py bdist_wininst
145
146 The latter example should build a Windows installer package, if you
147 have the correct tools. In any event, you *must* have a C compiler.
148 Additionally, you have to set an environment variable (mysqlroot)
149 which is the path to your MySQL installation. In theory, it would be
150 possible to get this information out of the registry, but like I said,
151 I don't do Windows, but I'll accept a patch that does this.
152
153 On Windows, you will definitely have to edit site.cfg since there is
154 no mysql_config in the MySQL package.
155
156
157 Zope
158 ....
159
160 If you are using a binary package of Zope, you need run setup.py with
161 the python executable that came with Zope. Otherwise, you'll install
162 into the wrong Python tree and Zope (ZMySQLDA) will not be able to
163 find _mysql.
164
165
166 Binary Packages
167 ---------------
168
169 I don't plan to make binary packages any more. However, if someone
170 contributes one, I will make it available. Several OS vendors have
171 their own packages available.
172
173
174 RPMs
175 ....
176
177 If you prefer to install RPMs, you can use the bdist_rpm command with
178 setup.py. This only builds the RPM; it does not install it. You may
179 want to use the --python=XXX option, where XXX is the name of the
180 Python executable, i.e. python, python2, python2.4; the default is
181 python. Using this will incorporate the Python executable name into
182 the package name for the RPM so you have install the package multiple
183 times if you need to support more than one version of Python. You can
184 also set this in setup.cfg.
185
186
187 Red Hat Linux
188 .............
189
190 MySQL-python is pre-packaged in Red Hat Linux 7.x and newer. This
191 includes Fedora Core and Red Hat Enterprise Linux. You can also
192 build your own RPM packages as described above.
193
194
195 Debian GNU/Linux
196 ................
197
198 Packaged as `python-mysqldb`_::
199
200 # apt-get install python-mysqldb
201
202 Or use Synaptic.
203
204 .. _`python-mysqldb`: http://packages.debian.org/python-mysqldb
205
206
207 Ubuntu
208 ......
209
210 Same as with Debian.
211
212
213 Gentoo Linux
214 ............
215
216 Packaged as `mysql-python`_. Gentoo is also my preferred development platform,
217 though I have also done some with Ubuntu lately. ::
218
219 # emerge sync
220 # emerge mysql-python
221 # emerge zmysqlda # if you use Zope
222
223 .. _`mysql-python`: http://packages.gentoo.org/search/?sstring=mysql-python
224
225
226 BSD
227 ...
228
229 MySQL-python is a ported package in FreeBSD, NetBSD, and OpenBSD,
230 although the name may vary to match OS conventions.
231
232
233 License
234 -------
235
236 GPL or the original license based on Python 1.5.2's license.
237
238
239 :Author: Andy Dustman <[email protected]>
240 :Revision: $Id$