Martijn Moeling
martijn at xs4us.nu
Thu Mar 29 06:58:55 EST 2007
I don't see the fuzz about mysql either. It is rock solid and I use(d) it a lot in production environment, together with mysqldb and mod python. When using it with mod python there are a few things to be aware of. First make sure the connection and cursor objects are not created globally I use: Def handler(req): .. .. req.db = MySQLdb.connect( host=Chost, user=Cuser, passwd=Cpasswd, db=Cdb, use_unicode=True, charset='utf8') req.cursor = req.db.cursor() #next I close the database in a fixup handler req.register_cleanup(closedb,req) ... And the closedb function def closedb(req): try: req.cursor.close() req.cursor=None req.db.close() req.db = None except: pass with this method of using mysqldb, the database connection is closed properly, even if the handler code runs into an error, if not and an error occurs and the connection is kept by MySQL and at the end it will run out of resources (and/or memory whatever comes first). And to the off topic part: People seem to blame software when it behaves as designed and they don't read manuals and/or know background theory, please keep non mod_python issues out of this list and respect choices made by other people, even if you think it is a bad one. The question was "How can I use Mysql with MP". To explain this further, I see people asking questions about MP running on windows, personally I have the opinion that Microsoft sells crap but that is since I know about unixes, OpenVMS, MVS etc. etc. and windows. But I'll never suggest : trow out windows and install xxxxx since the other person might be more familiar with windows, that is the tool of choice for him. Getting started with MP has a steep learning curve, not because MP is difficult to use, but since a lot of different technologies and standards apply (file protection, apache, mime types, character sets, HTML, javascript, xml, htttp (headers!), browser incompatibility, python, etc, etc. I have over 30 years of professional experience and I had a lot to learn when I started with MP. I am thinking of publishing parts of my system on a dedicated MP examples website, since I solved a lot of technology difficulties (uploading pictures, resizing pictures, pictures stored in Mysql, characterset conversion, a simple spiderbot, a simple templating system etc. MP beats a lot of other similar tools but in my eyes there is a lack of proper simple to understand examples for so called newbie's that are well documented Martijn Moeling -----Oorspronkelijk bericht----- Van: mod_python-bounces at modpython.org [mailto:mod_python-bounces at modpython.org] Namens Mike Looijmans Verzonden: Wednesday, March 28, 2007 12:02 PM Aan: mod_python at modpython.org Onderwerp: Re: [mod_python] how to use Mysql on mod_python+apache? This thread is going way of topic, but I'd really hate to see people being turned away from MySQL as a DB engine just because of the inaccuracies posted here. I have several years of experience with many DBMSs, including Informix, Oracle, MS SQLServer, Postgress, MySQL and several others. MySQL is my favorite for (non-.NET) web applications, because of its scalability, performance, reliability, low maintenance and ease of use. There are many DBMSs, each with their own pecularities, and none of them I would consider "bad" (or even "evil"). Which DBMS to chose for a particular task seems to become a matter of personal taste more everyday, because the more general offerings, like the ones I mentioned, all provide the same rich feature set (e.g. transactions, subqueries, stored procedures, outer joins). While I would not hesitate to recommend in favor of some of the databases I am familiar with, there is not one that i would ever tell people to "avoid at all cost". Even FoxPro has its uses. > Sorry, but accepting invalid input without error, truncating overly long > input and clipping overflowed numbers are not "quirks". I agree so far. > They are serious data integrity issues. I disagree here, because the issues you mentioned are configuration settings in MySQL. You can change the behaviour of the server in the config file. It is unfortunate that the default settings are not the ANSI ones. But you can make the MySQL DB comply to the more general standard of issuing an error on overflow and other forms of invalid input. I suggest reading some documentation before proceeding on the subject. > That's fine. At least you aren't really using MySQL in production :-) I have. On my previous assignment, the customer would loose about $10k per hour in lost machine time only (not even taking the engineers cost into account) if the MySQL database went offline. It did go offline once in that three year period i worked there - the power went down, the UPS failed and the operating system (Solaris) died a horrible dead along with the hard drive. When the power came up, I had its replacement up and running in about ten minutes, and no data was lost. -- Mike Looijmans _______________________________________________ Mod_python mailing list Mod_python at modpython.org http://mailman.modpython.org/mailman/listinfo/mod_python
|