MySQLdb reconnect

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Damjan

    MySQLdb reconnect

    Does MySQLdb automatically reconnect if the connection to the database is
    broken?

    I'm asking this since I have a longrunning Python precess that is connected
    to Mysql-4.1.11, and I execute "set names utf8" when I connect to it.

    But after running a day the results from the python program were displayed
    as if the "set names utf8" was not executed i.e. I got question marks where
    utf-8 cyrillics should've appeared. After restarting the Python program
    everything was ok, just as when I first started it.

    The long running Python process is actually a scgi quixote web application.


    --
    damjan
  • Eloff

    #2
    Re: MySQLdb reconnect

    I don't beleive that it does. You can however call ping() on the
    connection which should attempt an automatic reconnection.

    See the docs for mysql_ping:



    I've never tested that, but I have a need for it also so let me know if
    it works or not.

    -Dan

    Comment

    • Damjan

      #3
      Re: MySQLdb reconnect

      > Does MySQLdb automatically reconnect if the connection to the database is[color=blue]
      > broken?[/color]

      It seems so.
      [color=blue]
      > I'm asking this since I have a longrunning Python precess that is
      > connected to Mysql-4.1.11, and I execute "set names utf8" when I connect
      > to it.
      >
      > But after running a day the results from the python program were displayed
      > as if the "set names utf8" was not executed i.e. I got question marks
      > where utf-8 cyrillics should've appeared. After restarting the Python
      > program everything was ok, just as when I first started it.[/color]

      This is the sollution I've come to:

      try:
      # This will fail on MySQL < 4.1
      db = MySQLdb.connect (godot.dbhost, godot.dbuser, godot.dbpass,
      godot.dbname, use_unicode=1, init_command="s et names utf8")
      except MySQLdb.Operati onalError:
      db = MySQLdb.connect (godot.dbhost, godot.dbuser, godot.dbpass,
      godot.dbname, use_unicode=1)
      db.charset = 'utf8'


      --
      damjan

      Comment

      Working...