pymysql.err.InterfaceError after some hours of usage
Νίκος Βέργος
vergos.nikolas at gmail.com
Wed Oct 2 12:38:13 EDT 2019
Τη Τετάρτη, 2 Οκτωβρίου 2019 - 7:11:52 μ.μ. UTC+3, ο χρήστης Inada Naoki έγραψε:
> 2019年10月3日(木) 0:56 Νίκος Βέργος <vergos.nikolas at gmail.com>:
>
> > Τη Τετάρτη, 2 Οκτωβρίου 2019 - 8:26:38 π.μ. UTC+3, ο χρήστης Inada Naoki
> > έγραψε:
> > > MySQL connection can be closed automatically by various reasons.
> > > For example, `wait_timeout` is the most common but not only reason for
> > > closing the connection.
> > >
> > > You should connect and close MySQL connection for each HTTP request.
> > >
> > > Or you can use more smart connection pool (e.g. Engine in SQLAlchemy).
> > > It provides `pool_recycle` and `pool_pre_ping` options.
> > >
> > > https://docs.sqlalchemy.org/en/13/core/pooling.html#setting-pool-recycle
> >
> > You mean that every time i insrt/update and in general having a
> > cur.execute() i then need to close the pymysql connection in order to not
> > have this error?
> >
>
> No, I meant one new DB connection for each HTTP request, not for each DB
> query.
After seeing a stackoverflow link, it was stating that:
This is caused by a global cursor. Try creating and closing the cursor within each method a raw query is needed.
cursor = connection.cursor() cursor.execute(query) cursor.close()
Does that mean that i have to create a cursor then execute the SQL statement and the close the cursor? And i must do that before and after executing each SQL statement in all of my scripts?
Doesn't the DB Connection have a directive to autoclose the resources?
More information about the Python-list
mailing list