# File lib/active_record/connection_adapters/mysql_adapter.rb, line 117
      def execute(sql, name = nil, retries = 2)
        unless @logger
          @connection.query(sql)
        else
          log(sql, name) { @connection.query(sql) }
        end
      rescue ActiveRecord::StatementInvalid => exception
        if LOST_CONNECTION_ERROR_MESSAGES.any? { |msg| exception.message.split(":").first =~ /^#{msg}/ }
          @connection.real_connect(*@connection_options)
          unless @logger
            @connection.query(sql)
          else
            @logger.info "Retrying invalid statement with reopened connection"
            log(sql, name) { @connection.query(sql) }
          end
        elsif exception.message.split(":").first =~ /Packets out of order/
          raise ActiveRecord::StatementInvalid, "'Packets out of order' error was received from the database. Please update your mysql bindings (gem update mysql) and read http://dev.mysql.com/doc/mysql/en/password-hashing.html for more information."
        else
          raise
        end
      end