Hello everyone,

Has anyone successfully run SQLAlchemy 0.7.8 or .9 with MySQL 5.5? How 
about in Ubuntu 12.04? ...with MySQL-python 1.2.3 or a 1.2.4beta?

I ask because Ubuntu 12.04 rescinds package manager support for MySQL 5.1, 
forcing us to upgrade to 5.5. Last week I experimentally upgraded a very 
stable server from {Ubuntu 11.10, MySQL 5.1, InnoDB, Python 2.7.2} to 
{Ubuntu 12.04, MySQL 5.5, InnoDB, Python 2.7.3}. Unfortunately, ever since 
the upgrade I have seen sporadic errors like this one:

Module sqlalchemy.engine.default:606 in create_cursor view 
Module MySQLdb.connections:243 in cursor view 
StatementError: 'Connection' object has no attribute 'cursorclass' 
(original cause: AttributeError: 'Connection' object has no attribute 
'cursorclass') 'SELECT DATABASE()' [] 
(Python 2.7.3, SQLAlchemy 0.7.8, MySQL-python 1.2.3, MySQL 5.5, Pylons 1.0, 
mod-wsgi, apache2)

The server will run normally for an hour or two before this error arises. 
Each time I hit this error, SHOW FULL PROCESSLIST shows a leaked 
connection. Subsequent attempts to use SQLAlchemy within the same process 
die with the same error, leaking one additional connection per error until 
the server's max connections limit is exceeded, resulting in this error:

Module sqlalchemy.engine.default:281 in connect view 
Module MySQLdb:81 in Connect view 
Module MySQLdb.connections:187 in __init__ view 
OperationalError: (OperationalError) (1040, 'Too many connections') None 
None 

At that point I am forced to restart mysql and apache2, and normal service 
resumes for a random interval, perhaps an hour or two. Then the SELECT 
DATABASE error returns, and I restart again.

The SQLAlchemy 0.7.9 docs state that "SQLAlchemy supports 6 major MySQL 
versions: 3.23, 4.0, 4.1, 5.0, 5.1 and 6.0, with capabilities increasing 
with more modern servers." The docs do not explicitly state that 5.5 is no 
good, and I haven't read any horror stories on the list. This leads me to 
hope that the docs are out of date, and 5.5 might now be supported.

Before I rip out my MySQL 5.5 installation by the roots and built 5.1 from 
source, could somebody please confirm that 5.5 is positively unsupported by 
SQLAlchemy? If 5.5 is unsupported, are there plans to support it in the 
near future? Can anybody describe the failures I should expect with 
SQLAlchemy? Should I attribute my error to SQLAlchemy, or is it more likely 
to be MySQL-python's fault?

I appreciate any advice you all might offer.

MB

P.S. Here is the full stacktrace:
Module foo.controllers:176 in __before__ view 
>> c.sauser = User.find_first(domain_id=unicode(remote_user)) 
Module bar.model:120 in find_first view 
>> return cls.filter(*args, **kw).first() 
Module sqlalchemy.orm.query:2156 in first view 
Module sqlalchemy.orm.query:2023 in __getitem__ view 
Module sqlalchemy.orm.query:2227 in __iter__ view 
Module sqlalchemy.orm.query:2240 in _execute_and_instances view 
Module sqlalchemy.orm.query:2231 in _connection_from_session view 
Module sqlalchemy.orm.session:730 in connection view 
Module sqlalchemy.orm.session:736 in _connection_for_bind view 
Module sqlalchemy.engine.base:2490 in contextual_connect view 
Module sqlalchemy.pool:224 in connect view 
Module sqlalchemy.pool:387 in __init__ view 
Module sqlalchemy.pool:741 in _do_get view 
Module sqlalchemy.pool:188 in _create_connection view 
Module sqlalchemy.pool:273 in __init__ view 
Module sqlalchemy.event:282 in exec_once view 
Module sqlalchemy.event:291 in __call__ view 
Module sqlalchemy.engine.strategies:167 in first_connect view 
Module sqlalchemy.dialects.mysql.base:1999 in initialize view 
Module sqlalchemy.engine.default:176 in initialize view 
Module sqlalchemy.dialects.mysql.base:1964 in _get_default_schema_name view 
Module sqlalchemy.engine.base:1449 in execute view 
Module sqlalchemy.engine.base:1628 in _execute_text view 
Module sqlalchemy.engine.base:1651 in _execute_context view 
Module sqlalchemy.engine.base:1647 in _execute_context view 
Module sqlalchemy.engine.default:529 in _init_statement view 
Module sqlalchemy.engine.default:606 in create_cursor view 
Module MySQLdb.connections:243 in cursor view 
StatementError: 'Connection' object has no attribute 'cursorclass' 
(original cause: AttributeError: 'Connection' object has no attribute 
'cursorclass') 'SELECT DATABASE()' [] 

References:
http://docs.sqlalchemy.org/en/rel_0_7/dialects/mysql.html
http://docs.sqlalchemy.org/en/latest/dialects/mysql.html

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/sqlalchemy/-/yHIMJ3egP8gJ.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to