Spec-Zone .ru
спецификации, руководства, описания, API
|
MySQLConnection
class используется, чтобы открыть и управлять соединением с сервером
MySQL. Это также имело обыкновение отправлять команды и SQL-операторы и читать результаты.
MySQLConnection
конструктор инициализирует атрибуты и когда по крайней мере один
параметр передают, он пытается соединиться с сервером MySQL.
Для полного списка или параметров, см. Раздел 22.6.6, "Параметры Соединения Соединителя/Python".
close()
синоним для disconnect()
. См. Раздел 22.6.7.3.19, "Метод MySQLConnection.disconnect()
".
Конфигурирует 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'
Этот метод устанавливает соединение, устанавливая сеанс с сервером MySQL. Если никакие параметры не даются, это использует уже сконфигурированные или значения по умолчанию. Для полного списка возможных параметров см. Раздел 22.6.6, "Параметры Соединения Соединителя/Python".
Этот метод отправляет a COMMIT
оператор к серверу MySQL, фиксируя текущую
транзакцию. С тех пор Соединителем/Python значения по умолчанию не автоматически фиксирует, важно вызвать
этот метод после каждой транзакции, которая изменяет данные для таблиц, которые используют транзакционные
механизмы хранения.
>>> cursor.execute("INSERT INTO employees (first_name) VALUES (%s)", ('Jane'))>>> cnx.commit()
Чтобы откатывать вместо этого и отбросить модификации, см. откат () метод.
Этот метод возвращает a MySQLCursor()
объект, или подкласс этого в зависимости
от переданных параметров.
Когда buffered
True
, курсор выбирает все строки
после того, как работа выполняется. Это полезно, когда запросы возвращают небольшие наборы результатов.
Установка raw
пропускает преобразование от типов данных MySQL до типов Python,
выбирая строки. Сырые данные обычно используются, когда Вы хотите получить лучшую производительность, или Вы
хотите сделать преобразование самостоятельно.
cursor_class
параметр может использоваться, чтобы передать class, чтобы
использовать для того, чтобы инстанцировать нового курсора. Это должен быть подкласс cursor.CursorBase
.
Возвращенный объект зависит от комбинации buffered
и raw
параметры.
Если не буферизованный и не сырые данные: cursor.MySQLCursor
Если буферизовано и не сырые данные: cursor.MySQLCursorBuffered
Если буферизовано и сырые данные: cursor.MySQLCursorBufferedRaw
Если не буферизованный и сырые данные: cursor.MySQLCursorRaw
Возвраты a CursorBase
экземпляр.
Изменяет пользователя, использующего username
и password
. Это также вызывает указанное database
стать значением по умолчанию (ток) база данных. Также возможно изменить набор символов, используя charset
параметр.
Возвращает словарь, содержащий информацию о пакете OK.
Дает серверу команду писать отладочную информацию в журнал ошибок. Соединенный пользователь должен иметь SUPER
полномочие.
Возвращает словарь, содержащий информацию о пакете OK.
Этот метод делает определенную базу данных значением по умолчанию (ток) база данных. В последующих запросах эта база данных является значением по умолчанию для ссылок на таблицу, которые не включают явного спецификатора базы данных.
Возвращает словарь, содержащий информацию о пакете OK.
Проверки, работает ли соединение с сервером.
Этот метод не должен использоваться непосредственно. Используйте ping () или is_connected () вместо этого.
Возвращает словарь, содержащий информацию о пакете OK.
Этот метод повышает исключение NotSupportedError. Вместо этого используйте SHOW
PROCESSLIST
оператор или запрос таблицы находятся в базе данных INFORMATION_SCHEMA
.
Просит сервер уничтожать поток, определенный mysql_pid
. Хотя все еще доступный,
лучше использовать KILL
SQL-оператор.
Возвращает словарь, содержащий информацию о пакете OK.
Следующие две строки имеют тот же самый эффект:
>>> cnx.cmd_process_kill(123)>>> cnx.cmd_query('KILL 123')
Этот метод отправляет a QUIT
команда к серверу MySQL, закрывая текущее
соединение. С тех пор от сервера MySQL нет никакого ответа, пакет, который был отправлен, возвращается.
Этот метод отправляет данный statement
к серверу MySQL и возвратам результат.
Чтобы отправить многократные операторы, используйте cmd_query_iter
() метод вместо этого.
Возвращенный словарь содержит информацию в зависимости от того, какой запрос выполнялся. Если запрос
является a SELECT
оператор, результат содержит информацию о столбцах. Другие
операторы возвращают словарь, содержащий OK или информацию о пакете EOF.
Ошибки, полученные от сервера MySQL, повышаются как исключения. InterfaceError
повышается, когда многократные результаты находятся.
Возвращает словарь.
Подобный 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
Возвращает объект генератора.
Этот метод сбрасывает таблицы или кэши, или сбрасывает информацию о сервере репликации. Соединенный
пользователь должен иметь 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)
Просит сервер базы данных завершать работу. Соединенный пользователь должен иметь SHUTDOWN
полномочие.
Возвращает словарь, содержащий информацию о пакете OK.
Возвращает словарь, содержащий информацию о сервере MySQL включая время работы в секундах и числе выполнения потоков, вопросов, перезагрузок, и открытых таблиц.
Этот метод пытается отправить a QUIT
команда и близко сокет. Это не повышает
исключений.
MySQLConnection.close()
синонимичное имя метода и более обычно используемый.
Этот метод получает все или остающиеся строки набора результатов запроса, возвращая кортеж, содержащий
строки как последовательности и информация о пакете EOF. Параметр количества может использоваться, чтобы
получить данное число строк. Если количество не определяется или None
, все
строки получаются.
Кортеж, возвращенный get_rows()
состоит из:
Список кортежей, содержащих данные строки как байт, возражает, или пустой список, когда никакие строки не доступны.
Информация о пакете EOF как словарь, содержащий status_flag
и warning_count
.
InterfaceError
повышается, когда все строки были получены.
MySQLCursor использует get_rows()
метод, чтобы выбрать строки.
Возвращает кортеж.
Этот метод получает следующую строку набора результатов запроса, возвращая кортеж.
Кортеж, возвращенный get_row()
состоит из:
Строка как кортеж, содержащий объекты байта, или None
когда больше строк не доступно.
Информация о пакете EOF как словарь, содержащий status_flag
и warning_count
, или None
когда
возвращенная строка не является последней строкой.
get_row()
метод используется MySQLCursor,
чтобы выбрать строки.
Этот метод возвращает информацию о сервере MySQL дословно как строку, например '5.6.11-log'
,
или None
если не соединенный.
Этот метод возвращает версию сервера MySQL как кортеж, или None
если не
соединенный.
Отчеты, доступно ли соединение с MySQL Server.
Этот метод проверяет, является ли соединение с MySQL доступным использованием ping
() метод, но в отличие от этого ping()
, is_connected()
возвраты True
когда соединение доступно, False
иначе.
Этот метод возвраты True
если клиентский флаг был установлен, False
иначе.
Проверьте, доступно ли соединение с сервером MySQL все еще.
Когда reconnect
устанавливается в True
, одна или
более попыток предпринимаются, чтобы попытаться повторно соединиться с сервером MySQL, используя reconnect()
метод. Используйте delay
параметр
(секунды), если Вы хотите ожидать между каждой повторной попыткой.
Когда соединение не доступно, InterfaceError
повышается. Используйте is_connected () метод, чтобы проверить
соединение, не повышая ошибку.
Повышения InterfaceError
на ошибках.
Попытка повторно соединиться с сервером MySQL.
Параметр attempts
определяет, что число раз a повторно соединяется, пробуется.
delay
параметром является число секунд, чтобы ожидать между каждой повторной
попыткой.
Вы могли бы определить номер попыток выше и использовать более длинную задержку, когда Вы ожидаете, что сервер MySQL снизится для обслуживания, или когда Вы будете ожидать, что сеть будет временно недоступна.
Этот метод отправляет a ROLLBACK
оператор к серверу MySQL, отменяя все
изменения данных от текущей транзакции. По умолчанию Соединитель/Python не автоматически фиксирует, таким
образом, возможно отменить транзакции при использовании транзакционных механизмов хранения такой как InnoDB
.
>>> cursor.execute("INSERT INTO employees (first_name) VALUES (%s)", ('Jane'))>>> cnx.rollback()
Чтобы фиксировать модификации, см. фиксацию () метод.
Этот метод устанавливает набор символов и сопоставление, которое будет использоваться для текущего
соединения. 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')
Этот метод устанавливает клиентские флаги, чтобы использовать, соединяясь с сервером 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. Поэтому необходимо повторно соединиться после произведения изменений.
Этот метод запускает транзакцию. Это принимает, принимает параметры, указывающие, использовать ли непротиворечивый снимок и который уровень изоляции транзакции использовать:
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.
Это свойство может быть присвоено значение True
или False
включать или отключать опцию автоматической фиксации MySQL. Свойство может
быть вызвано, чтобы получить текущую установку автоматической фиксации.
Отметьте, что автоматическая фиксация отключается по умолчанию, соединяясь через Соединитель/Python. Это
может быть включено, используя autocommit
параметр
соединения.
Когда автоматическая фиксация выключается, следует фиксировать
транзакции при использовании транзакционных механизмов хранения такой как InnoDB
или NDBCluster
.
>>> cnx.autocommitFalse>>> cnx.autocommit = True>>> cnx.autocommitTrue
Это свойство возвращает строку, указывающую, какой набор символов используется для соединения, соединяется ли это.
Это свойство возвращает строку, указывающую, какое сопоставление используется для соединения, соединяется ли это.
Это свойство возвращает целочисленный ID соединения (ID потока или ID сеанса) для текущего соединения или
None
если не соединенный.
Это наборы свойств ток (значение по умолчанию) база данных, выполняясь a USE
оператор. Свойство может также использоваться, чтобы получить текущее имя базы данных.
>>> cnx.database = 'test'>>> cnx.database = 'mysql'>>> cnx.databaseu'mysql'
Возвращает строку.
Это свойство может быть присвоено значение 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
.
Это свойство возвраты 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.
Это свойство может быть присвоено значение 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
.
Это свойство только для чтения возвращает имя хоста или IP-адрес, используемый для того, чтобы соединиться с сервером MySQL.
Возвращает строку.
Это свойство только для чтения возвращает порт TCP/IP, используемый для того, чтобы соединиться с сервером MySQL.
Возвращает целое число.
Это свойство используется, чтобы получить и установить Режимы 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'
Возвращает строку.
Это свойство используется, чтобы установить или получить переменную сеанса часового пояса для текущего соединения.
>>> 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'
Возвращает строку.
Это свойство только для чтения возвращает файл сокета Unix для того, чтобы соединиться с сервером MySQL.
Возвращает строку.