У меня есть скрипт на python, где я использую MySQLdb-коннектор, но на сервере MySQLdb не установлен, поэтому мне нужен соединитель изменения. У меня есть пример класса:Python mysql: Потерянное соединение с сервером MySQL во время запроса
class Foo:
def __init__(self, config):
self.logger = logging.getLogger("Foo")
self.db = MySQLdb.connect(host=config["host"],user=config["user"], passwd=config["passwd"], db=config["db"])
def get_something(self):
cursor=self.db.cursor()
cursor.execute("Select ...")
for row in cursor:
self.logger.debug(row)
yield(row)
f = Foo(config)
f.get_something()
Когда я использую разъем MySQLdb, он работает. В этом случае python считывает все записи и сохраняет их в памяти. Но когда я изменяю соединитель mysql.connector
скрипт печатает некоторые записи и поднять ошибку:
mysql.connector.errors.InterfaceError: 2013: Lost connection to MySQL server during query
Это модифицированный класс:
class Foo:
def __init__(self, config):
self.logger = logging.getLogger("Foo")
self.db = mysql.connector.connect(host=config["host"],user=config["user"], passwd=config["passwd"], db=config["db"])
def get_something(self):
cursor=self.db.cursor()
cursor.execute("Select ...")
for row in cursor:
self.logger.debug(row)
yield(row)
f = Foo(config)
f.get_something()
Я пытаюсь запустить запрос:
self.db.cursor().execute("SET GLOBAL max_allowed_packet=1073741824")
Но у меня есть ошибка:
mysql.connector.errors.ProgrammingError: 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operation
Можно ли устранить эту ошибку? У меня нет прав доступа к изменениям, и у меня нет доступа к установке MySQLdb на сервере.
Это известная ошибка с COnnector/Python http://bugs.mysql.com/bug.php?id=74483 – Peeyush