Spec-Zone .ru
спецификации, руководства, описания, API

22.6.7.3. Класс connection.MySQLConnection

MySQLConnection class используется, чтобы открыть и управлять соединением с сервером MySQL. Это также имело обыкновение отправлять команды и SQL-операторы и читать результаты.

22.6.7.3.1. Конструктор connection.MySQLConnection(**kwargs)

MySQLConnection конструктор инициализирует атрибуты и когда по крайней мере один параметр передают, он пытается соединиться с сервером MySQL.

Для полного списка или параметров, см. Раздел 22.6.6, "Параметры Соединения Соединителя/Python".

22.6.7.3.2. Метод MySQLConnection.close()

close() синоним для disconnect(). См. Раздел 22.6.7.3.19, "Метод MySQLConnection.disconnect()".

22.6.7.3.3. Метод MySQLConnection.config(**kwargs)

Конфигурирует a MySQLConnection экземпляр после того, как это инстанцировали. Для полного списка возможных параметров см. Раздел 22.6.6, "Параметры Соединения Соединителя/Python".

Вы могли использовать config() метод, чтобы изменить (например) имя пользователя, затем вызовите reconnect().

cnx = mysql.connector.connect(user='joe', database='test')# Connected as 'joe'cnx.config(user='jane')cnx.reconnect()# Now connected as 'jane'

22.6.7.3.4. Метод MySQLConnection.connect(**kwargs)

Этот метод устанавливает соединение, устанавливая сеанс с сервером MySQL. Если никакие параметры не даются, это использует уже сконфигурированные или значения по умолчанию. Для полного списка возможных параметров см. Раздел 22.6.6, "Параметры Соединения Соединителя/Python".

22.6.7.3.5. Метод MySQLConnection.commit()

Этот метод отправляет a COMMIT оператор к серверу MySQL, фиксируя текущую транзакцию. С тех пор Соединителем/Python значения по умолчанию не автоматически фиксирует, важно вызвать этот метод после каждой транзакции, которая изменяет данные для таблиц, которые используют транзакционные механизмы хранения.

>>> cursor.execute("INSERT INTO employees (first_name) VALUES (%s)", ('Jane'))>>> cnx.commit()

Чтобы откатывать вместо этого и отбросить модификации, см. откат () метод.

22.6.7.3.6. Метод MySQLConnection.cursor(buffered=None, raw=None,cursor_class=None)

Этот метод возвращает a MySQLCursor() объект, или подкласс этого в зависимости от переданных параметров.

Когда buffered True, курсор выбирает все строки после того, как работа выполняется. Это полезно, когда запросы возвращают небольшие наборы результатов. Установка raw пропускает преобразование от типов данных MySQL до типов Python, выбирая строки. Сырые данные обычно используются, когда Вы хотите получить лучшую производительность, или Вы хотите сделать преобразование самостоятельно.

cursor_class параметр может использоваться, чтобы передать class, чтобы использовать для того, чтобы инстанцировать нового курсора. Это должен быть подкласс cursor.CursorBase.

Возвращенный объект зависит от комбинации buffered и raw параметры.

  • Если не буферизованный и не сырые данные: cursor.MySQLCursor

  • Если буферизовано и не сырые данные: cursor.MySQLCursorBuffered

  • Если буферизовано и сырые данные: cursor.MySQLCursorBufferedRaw

  • Если не буферизованный и сырые данные: cursor.MySQLCursorRaw

Возвраты a CursorBase экземпляр.

22.6.7.3.7. Метод MySQLConnection.cmd_change_user(username='',password='', database='', charset=33)

Изменяет пользователя, использующего username и password. Это также вызывает указанное database стать значением по умолчанию (ток) база данных. Также возможно изменить набор символов, используя charset параметр.

Возвращает словарь, содержащий информацию о пакете OK.

22.6.7.3.8. Метод MySQLConnection.cmd_debug()

Дает серверу команду писать отладочную информацию в журнал ошибок. Соединенный пользователь должен иметь SUPER полномочие.

Возвращает словарь, содержащий информацию о пакете OK.

22.6.7.3.9. Метод MySQLConnection.cmd_init_db(database)

Этот метод делает определенную базу данных значением по умолчанию (ток) база данных. В последующих запросах эта база данных является значением по умолчанию для ссылок на таблицу, которые не включают явного спецификатора базы данных.

Возвращает словарь, содержащий информацию о пакете OK.

22.6.7.3.10. Метод MySQLConnection.cmd_ping()

Проверки, работает ли соединение с сервером.

Этот метод не должен использоваться непосредственно. Используйте ping () или is_connected () вместо этого.

Возвращает словарь, содержащий информацию о пакете OK.

22.6.7.3.11. Метод MySQLConnection.cmd_process_info()

Этот метод повышает исключение NotSupportedError. Вместо этого используйте SHOW PROCESSLIST оператор или запрос таблицы находятся в базе данных INFORMATION_SCHEMA.

22.6.7.3.12. Метод MySQLConnection.cmd_process_kill(mysql_pid)

Просит сервер уничтожать поток, определенный mysql_pid. Хотя все еще доступный, лучше использовать KILL SQL-оператор.

Возвращает словарь, содержащий информацию о пакете OK.

Следующие две строки имеют тот же самый эффект:

>>> cnx.cmd_process_kill(123)>>> cnx.cmd_query('KILL 123')

22.6.7.3.13. Метод MySQLConnection.cmd_quit()

Этот метод отправляет a QUIT команда к серверу MySQL, закрывая текущее соединение. С тех пор от сервера MySQL нет никакого ответа, пакет, который был отправлен, возвращается.

22.6.7.3.14. Метод MySQLConnection.cmd_query(statement)

Этот метод отправляет данный statement к серверу MySQL и возвратам результат. Чтобы отправить многократные операторы, используйте cmd_query_iter () метод вместо этого.

Возвращенный словарь содержит информацию в зависимости от того, какой запрос выполнялся. Если запрос является a SELECT оператор, результат содержит информацию о столбцах. Другие операторы возвращают словарь, содержащий OK или информацию о пакете EOF.

Ошибки, полученные от сервера MySQL, повышаются как исключения. InterfaceError повышается, когда многократные результаты находятся.

Возвращает словарь.

22.6.7.3.15. Метод MySQLConnection.cmd_query_iter(statement)

Подобный cmd_query () метод, но возвраты генератор возражают, чтобы выполнить итерации через результаты. Использовать cmd_query_iter() когда отправка многократных операторов, и разделяет операторы точками с запятой.

Следующий пример показывает, как выполнить итерации через результаты после отправки многократных операторов:

statement = 'SELECT 1; INSERT INTO t1 VALUES (); SELECT 2'for result in cnx.cmd_query_iter(statement):  if 'columns' in result:    columns = result['columns']    rows = cnx.get_rows()  else:    # do something useful with INSERT result

Возвращает объект генератора.

22.6.7.3.16. Метод MySQLConnection.cmd_refresh(options)

Этот метод сбрасывает таблицы или кэши, или сбрасывает информацию о сервере репликации. Соединенный пользователь должен иметь RELOAD полномочие.

options параметром должно быть значение битовой маски, созданное, используя константы от constants.RefreshOption class.

Для списка опций см. Раздел 22.6.7.10, "Класс constants.RefreshOption".

Пример:

>>> from mysql.connector import RefreshOption>>> refresh = RefreshOption.LOG | RefreshOption.THREADS>>> cnx.cmd_refresh(refresh)

22.6.7.3.17. Метод MySQLConnection.cmd_shutdown()

Просит сервер базы данных завершать работу. Соединенный пользователь должен иметь SHUTDOWN полномочие.

Возвращает словарь, содержащий информацию о пакете OK.

22.6.7.3.18. Метод MySQLConnection.cmd_statistics()

Возвращает словарь, содержащий информацию о сервере MySQL включая время работы в секундах и числе выполнения потоков, вопросов, перезагрузок, и открытых таблиц.

22.6.7.3.19. Метод MySQLConnection.disconnect()

Этот метод пытается отправить a QUIT команда и близко сокет. Это не повышает исключений.

MySQLConnection.close() синонимичное имя метода и более обычно используемый.

22.6.7.3.20. Метод MySQLConnection.get_rows(count=None)

Этот метод получает все или остающиеся строки набора результатов запроса, возвращая кортеж, содержащий строки как последовательности и информация о пакете EOF. Параметр количества может использоваться, чтобы получить данное число строк. Если количество не определяется или None, все строки получаются.

Кортеж, возвращенный get_rows() состоит из:

  • Список кортежей, содержащих данные строки как байт, возражает, или пустой список, когда никакие строки не доступны.

  • Информация о пакете EOF как словарь, содержащий status_flag и warning_count.

InterfaceError повышается, когда все строки были получены.

MySQLCursor использует get_rows() метод, чтобы выбрать строки.

Возвращает кортеж.

22.6.7.3.21. Метод MySQLConnection.get_row()

Этот метод получает следующую строку набора результатов запроса, возвращая кортеж.

Кортеж, возвращенный get_row() состоит из:

  • Строка как кортеж, содержащий объекты байта, или None когда больше строк не доступно.

  • Информация о пакете EOF как словарь, содержащий status_flag и warning_count, или None когда возвращенная строка не является последней строкой.

get_row() метод используется MySQLCursor, чтобы выбрать строки.

22.6.7.3.22. Метод MySQLConnection.get_server_info()

Этот метод возвращает информацию о сервере MySQL дословно как строку, например '5.6.11-log', или None если не соединенный.

22.6.7.3.23. Метод MySQLConnection.get_server_version()

Этот метод возвращает версию сервера MySQL как кортеж, или None если не соединенный.

22.6.7.3.24. Метод MySQLConnection.is_connected()

Отчеты, доступно ли соединение с MySQL Server.

Этот метод проверяет, является ли соединение с MySQL доступным использованием ping () метод, но в отличие от этого ping(), is_connected() возвраты True когда соединение доступно, False иначе.

22.6.7.3.25. Метод MySQLConnection.isset_client_flag(flag)

Этот метод возвраты True если клиентский флаг был установлен, False иначе.

22.6.7.3.26. Метод MySQLConnection.ping(attempts=1, delay=0)

Проверьте, доступно ли соединение с сервером MySQL все еще.

Когда reconnect устанавливается в True, одна или более попыток предпринимаются, чтобы попытаться повторно соединиться с сервером MySQL, используя reconnect() метод. Используйте delay параметр (секунды), если Вы хотите ожидать между каждой повторной попыткой.

Когда соединение не доступно, InterfaceError повышается. Используйте is_connected () метод, чтобы проверить соединение, не повышая ошибку.

Повышения InterfaceError на ошибках.

22.6.7.3.27. Метод MySQLConnection.reconnect(attempts=1, delay=0)

Попытка повторно соединиться с сервером MySQL.

Параметр attempts определяет, что число раз a повторно соединяется, пробуется. delay параметром является число секунд, чтобы ожидать между каждой повторной попыткой.

Вы могли бы определить номер попыток выше и использовать более длинную задержку, когда Вы ожидаете, что сервер MySQL снизится для обслуживания, или когда Вы будете ожидать, что сеть будет временно недоступна.

22.6.7.3.28. Метод MySQLConnection.rollback()

Этот метод отправляет a ROLLBACK оператор к серверу MySQL, отменяя все изменения данных от текущей транзакции. По умолчанию Соединитель/Python не автоматически фиксирует, таким образом, возможно отменить транзакции при использовании транзакционных механизмов хранения такой как InnoDB.

>>> cursor.execute("INSERT INTO employees (first_name) VALUES (%s)", ('Jane'))>>> cnx.rollback()

Чтобы фиксировать модификации, см. фиксацию () метод.

22.6.7.3.29. Метод MySQLConnection.set_charset_collation(charset=None,collation=None)

Этот метод устанавливает набор символов и сопоставление, которое будет использоваться для текущего соединения. charset параметром может быть или имя набора символов, или числовой эквивалент как определено в constants.CharacterSet.

Когда collation None, сопоставление значения по умолчанию для набора символов используется.

В следующем примере мы устанавливаем набор символов в latin1 и сопоставление к latin1_swedish_ci (сопоставление значения по умолчанию для: latin1):

>>> cnx = mysql.connector.connect(user='scott')>>> cnx.set_charset('latin1')

Определите данное сопоставление следующим образом:

>>> cnx = mysql.connector.connect(user='scott')>>> cnx.set_charset('latin1', 'latin1_general_ci')

22.6.7.3.30. Метод MySQLConnection.set_client_flags(flags)

Этот метод устанавливает клиентские флаги, чтобы использовать, соединяясь с сервером MySQL, и возвращает новое значение как целое число. flags параметром может быть или целое число или последовательность допустимых клиентских флаговых значений (см. Раздел 22.6.7.6, "Класс constants.ClientFlag").

Если flags последовательность, каждый элемент в последовательности устанавливает флаг, когда значение положительно или сбрасывает это когда отрицание. Например, чтобы сбросить LONG_FLAG и набор FOUND_ROWS флаги:

>>> from mysql.connector.constants import ClientFlag>>> cnx.set_client_flags([ClientFlag.FOUND_ROWS, -ClientFlag.LONG_FLAG])>>> cnx.reconnect()

Отметьте, что клиентские флаги только устанавливаются или используются, соединяясь с сервером MySQL. Поэтому необходимо повторно соединиться после произведения изменений.

22.6.7.3.31. Метод MySQLConnection.start_transaction()

Этот метод запускает транзакцию. Это принимает, принимает параметры, указывающие, использовать ли непротиворечивый снимок и который уровень изоляции транзакции использовать:

cnx.start_transaction(consistent_snapshot=bool,                      isolation_level=level)

Значение по умолчанию consistent_snapshot значение False. Значение по умолчанию isolation_level значение None, и разрешенные значения 'READ UNCOMMITTED', 'READ COMMITTED', 'REPEATABLE READ', и 'SERIALIZABLE'.

Вызов start_transaction() повышения a ProgrammingError если вызвано, в то время как транзакция в настоящий момент происходит. Это отличается от выполнения a START TRANSACTION SQL-оператор, в то время как транзакция происходит; оператор неявно фиксирует текущую транзакцию.

Чтобы определить, является ли транзакция активной для соединения, используйте in_transaction свойство.

start_transaction() был добавлен в MySQL, Connector/Python 1.1.0.

22.6.7.3.32. Свойство MySQLConnection.autocommit

Это свойство может быть присвоено значение True или False включать или отключать опцию автоматической фиксации MySQL. Свойство может быть вызвано, чтобы получить текущую установку автоматической фиксации.

Отметьте, что автоматическая фиксация отключается по умолчанию, соединяясь через Соединитель/Python. Это может быть включено, используя autocommit параметр соединения.

Когда автоматическая фиксация выключается, следует фиксировать транзакции при использовании транзакционных механизмов хранения такой как InnoDB или NDBCluster.

>>> cnx.autocommitFalse>>> cnx.autocommit = True>>> cnx.autocommitTrue

22.6.7.3.33. Свойство MySQLConnection.charset_name

Это свойство возвращает строку, указывающую, какой набор символов используется для соединения, соединяется ли это.

22.6.7.3.34. Свойство MySQLConnection.collation_name

Это свойство возвращает строку, указывающую, какое сопоставление используется для соединения, соединяется ли это.

22.6.7.3.35. Свойство MySQLConnection.connection_id

Это свойство возвращает целочисленный ID соединения (ID потока или ID сеанса) для текущего соединения или None если не соединенный.

22.6.7.3.36. Свойство MySQLConnection.database

Это наборы свойств ток (значение по умолчанию) база данных, выполняясь a USE оператор. Свойство может также использоваться, чтобы получить текущее имя базы данных.

>>> cnx.database = 'test'>>> cnx.database = 'mysql'>>> cnx.databaseu'mysql'

Возвращает строку.

22.6.7.3.37. Свойство MySQLConnection.get_warnings

Это свойство может быть присвоено значение True или False включить или отключить, должны ли предупреждения быть выбраны автоматически. Значение по умолчанию False (значение по умолчанию). Свойство может быть вызвано, чтобы получить текущую установку предупреждений.

Выборка предупреждений автоматически может быть полезной, отлаживая запросы. Курсоры делают предупреждения доступными через метод MySQLCursor.fetchwarnings ().

>>> cnx.get_warnings = True>>> cursor.execute('SELECT "a"+1')>>> cursor.fetchall()[(1.0,)]>>> cursor.fetchwarnings()[(u'Warning', 1292, u"Truncated incorrect DOUBLE value: 'a'")]

Возвраты True или False.

22.6.7.3.38. Свойство MySQLConnection.in_transaction

Это свойство возвраты True или False указать, является ли транзакция активной для соединения. Значение True независимо от того, начинаете ли Вы транзакцию, используя start_transaction() Вызов API или непосредственно выполняя SQL-оператор такой как START TRANSACTION или BEGIN.

>>> cnx.start_transaction()>>> cnx.in_transactionTrue>>> cnx.commit()>>> cnx.in_transactionFalse

in_transaction был добавлен в MySQL, Connector/Python 1.1.0.

22.6.7.3.39. Свойство MySQLConnection.raise_on_warnings

Это свойство может быть присвоено значение True или False включить или отключить, должны ли предупреждения повысить исключения. Значение по умолчанию False (значение по умолчанию). Свойство может быть вызвано, чтобы получить текущую установку исключений.

Установка raise_on_warnings также наборы get_warnings потому что предупреждения должны быть выбраны так, они могут быть повышены как исключения.

Отметьте, что Вы могли бы всегда хотеть установить режим SQL, если требуется иметь сервер MySQL, непосредственно сообщают о предупреждениях как об ошибках (см. Раздел 22.6.7.3.42, "Свойство MySQLConnection.sql_mode"). Также хорошо использовать транзакционные механизмы, таким образом, транзакции могут откатываться, ловя исключение.

Наборы результатов должны быть выбраны полностью прежде, чем любое исключение может быть повышено. Следующий пример показывает выполнение запроса, который производит предупреждение:

>>> cnx.raise_on_warnings = True>>> cursor.execute('SELECT "a"+1')>>> cursor.fetchall()..mysql.connector.errors.DataError: 1292: Truncated incorrect DOUBLE value: 'a'

Возвраты True или False.

22.6.7.3.40. Свойство MySQLConnection.server_host

Это свойство только для чтения возвращает имя хоста или IP-адрес, используемый для того, чтобы соединиться с сервером MySQL.

Возвращает строку.

22.6.7.3.41. Свойство MySQLConnection.server_port

Это свойство только для чтения возвращает порт TCP/IP, используемый для того, чтобы соединиться с сервером MySQL.

Возвращает целое число.

22.6.7.3.42. Свойство MySQLConnection.sql_mode

Это свойство используется, чтобы получить и установить Режимы SQL для текущего соединения. Значение должно быть списком различных режимов, разделенных запятой (","), или последовательность режимов, предпочтительно используя constants.SQLMode class.

Чтобы сбросить все режимы, передайте пустую строку или пустую последовательность.

>>> cnx.sql_mode = 'TRADITIONAL,NO_ENGINE_SUBSTITUTION'>>> cnx.sql_mode.split(',')[u'STRICT_TRANS_TABLES', u'STRICT_ALL_TABLES', u'NO_ZERO_IN_DATE',u'NO_ZERO_DATE', u'ERROR_FOR_DIVISION_BY_ZERO', u'TRADITIONAL', u'NO_AUTO_CREATE_USER', u'NO_ENGINE_SUBSTITUTION']>>> from mysql.connector.constants import SQLMode>>> cnx.sql_mode = [ SQLMode.NO_ZERO_DATE, SQLMode.REAL_AS_FLOAT]>>> cnx.sql_modeu'REAL_AS_FLOAT,NO_ZERO_DATE'

Возвращает строку.

22.6.7.3.43. Свойство MySQLConnection.time_zone

Это свойство используется, чтобы установить или получить переменную сеанса часового пояса для текущего соединения.

>>> cnx.time_zone = '+00:00'>>> cur.execute('SELECT NOW()') ; cur.fetchone()(datetime.datetime(2012, 6, 15, 11, 24, 36),)>>> cnx.time_zone = '-09:00'>>> cur.execute('SELECT NOW()') ; cur.fetchone()(datetime.datetime(2012, 6, 15, 2, 24, 44),)>>> cnx.time_zoneu'-09:00'

Возвращает строку.

22.6.7.3.44. Свойство MySQLConnection.unix_socket

Это свойство только для чтения возвращает файл сокета Unix для того, чтобы соединиться с сервером MySQL.

Возвращает строку.

22.6.7.3.45. Свойство MySQLConnection.user

Это свойство только для чтения возвращает имя пользователя, используемое для того, чтобы соединиться с сервером MySQL.

Возвращает строку.