def mdb_con(self): """ Get MySQL connection. """ if self.use_c_api and c_flag: con = _mysql_connector.MySQL() con.connect(**self.kwargs) con.set_character_set(self.charset) con.use_unicode(self.use_unicode) con.autocommit(self.autocommit) charset = "utf8mb4" if self.is_utf8mb4 else self.charset con.query("SET NAMES {charset};".format(charset=charset)) con.query("SET CHARACTER SET {charset};".format(charset=charset)) con.query("SET character_set_connection={charset};".format( charset=charset)) con.commit() return con if self.use_c_api and not c_flag: logger.warning( 'Get "_mysql_connector" failed, fall back to strictly use "mysql.connector"...' ) return mysql.connector.connect(charset=self.charset, use_unicode=self.use_unicode, autocommit=self.autocommit, **self.kwargs)
def get_con(use_c_api=True, charset="utf8", use_unicode=False, autocommit=False, **kwargs): """ Get MySQL connection. """ if use_c_api and c_flag: con = _mysql_connector.MySQL() con.connect(**kwargs) con.set_character_set(charset) con.use_unicode(use_unicode) con.autocommit(autocommit) con.query("SET NAMES {charset};".format(charset=charset)) con.query("SET CHARACTER SET {charset};".format(charset=charset)) con.query( "SET character_set_connection={charset};".format(charset=charset)) con.commit() return con if use_c_api and not c_flag: logger.warning( 'Get "_mysql_connector" failed, fall back to strictly use "mysql.connector"...' ) return mysql.connector.connect(charset=charset, use_unicode=use_unicode, autocommit=autocommit, **kwargs)
def _open_connection(self): charset_name = CharacterSet.get_info(self._charset_id)[0] self._cmysql = _mysql_connector.MySQL( # pylint: disable=E1101,I1101 buffered=self._buffered, raw=self._raw, charset_name=charset_name, connection_timeout=(self._connection_timeout or 0), use_unicode=self._use_unicode, auth_plugin=self._auth_plugin) if not self.isset_client_flag(ClientFlag.CONNECT_ARGS): self._conn_attrs = {} cnx_kwargs = { 'host': self._host, 'user': self._user, 'password': self._password, 'database': self._database, 'port': self._port, 'client_flags': self._client_flags, 'unix_socket': self._unix_socket, 'compress': self.isset_client_flag(ClientFlag.COMPRESS), 'ssl_disabled': True, "conn_attrs": self._conn_attrs } if not self._ssl_disabled: cnx_kwargs.update({ 'ssl_ca': self._ssl.get('ca'), 'ssl_cert': self._ssl.get('cert'), 'ssl_key': self._ssl.get('key'), 'ssl_verify_cert': self._ssl.get('verify_cert') or False, 'ssl_verify_identity': self._ssl.get('verify_identity') or False, 'ssl_disabled': self._ssl_disabled }) try: self._cmysql.connect(**cnx_kwargs) except MySQLInterfaceError as exc: raise errors.get_mysql_exception(msg=exc.msg, errno=exc.errno, sqlstate=exc.sqlstate) self._do_handshake()
def _open_connection(self): charset_name = CharacterSet.get_info(self._charset_id)[0] self._cmysql = _mysql_connector.MySQL( buffered=self._buffered, raw=self._raw, charset_name=charset_name, connection_timeout=int(self._connection_timeout or 10), use_unicode=self._use_unicode, auth_plugin=self._auth_plugin) cnx_kwargs = { 'host': self._host, 'user': self._user, 'password': self._password, 'database': self._database, 'port': self._port, 'client_flags': self._client_flags, 'unix_socket': self._unix_socket, 'compress': self.isset_client_flag(ClientFlag.COMPRESS) } if self.isset_client_flag(ClientFlag.SSL): cnx_kwargs.update({ 'ssl_ca': self._ssl['ca'], 'ssl_cert': self._ssl['cert'], 'ssl_key': self._ssl['key'], 'ssl_verify_cert': self._ssl['verify_cert'] }) try: self._cmysql.connect(**cnx_kwargs) except MySQLInterfaceError as exc: raise errors.get_mysql_exception(msg=exc.msg, errno=exc.errno, sqlstate=exc.sqlstate) self._do_handshake()
def _open_connection(self): charset_name = CharacterSet.get_info(self._charset_id)[0] self._cmysql = _mysql_connector.MySQL( # pylint: disable=E1101,I1101 buffered=self._buffered, raw=self._raw, charset_name=charset_name, connection_timeout=(self._connection_timeout or 0), use_unicode=self._use_unicode, auth_plugin=self._auth_plugin, plugin_dir=self._plugin_dir) if not self.isset_client_flag(ClientFlag.CONNECT_ARGS): self._conn_attrs = {} cnx_kwargs = { 'host': self._host, 'user': self._user, 'password': self._password, 'password1': self._password1, 'password2': self._password2, 'password3': self._password3, 'database': self._database, 'port': self._port, 'client_flags': self._client_flags, 'unix_socket': self._unix_socket, 'compress': self.isset_client_flag(ClientFlag.COMPRESS), 'ssl_disabled': True, "conn_attrs": self._conn_attrs, "local_infile": self._allow_local_infile, "load_data_local_dir": self._allow_local_infile_in_path, "oci_config_file": self._oci_config_file, } tls_versions = self._ssl.get('tls_versions') if tls_versions is not None: tls_versions.sort(reverse=True) tls_versions = ",".join(tls_versions) if self._ssl.get('tls_ciphersuites') is not None: ssl_ciphersuites = self._ssl.get('tls_ciphersuites')[0] tls_ciphersuites = self._ssl.get('tls_ciphersuites')[1] else: ssl_ciphersuites = None tls_ciphersuites = None if tls_versions is not None and "TLSv1.3" in tls_versions and \ not tls_ciphersuites: tls_ciphersuites = "TLS_AES_256_GCM_SHA384" if not self._ssl_disabled: cnx_kwargs.update({ 'ssl_ca': self._ssl.get('ca'), 'ssl_cert': self._ssl.get('cert'), 'ssl_key': self._ssl.get('key'), 'ssl_cipher_suites': ssl_ciphersuites, 'tls_versions': tls_versions, 'tls_cipher_suites': tls_ciphersuites, 'ssl_verify_cert': self._ssl.get('verify_cert') or False, 'ssl_verify_identity': self._ssl.get('verify_identity') or False, 'ssl_disabled': self._ssl_disabled }) try: self._cmysql.connect(**cnx_kwargs) self._cmysql.converter_str_fallback = self._converter_str_fallback if self.converter: self.converter.str_fallback = self._converter_str_fallback except MySQLInterfaceError as exc: raise errors.get_mysql_exception(msg=exc.msg, errno=exc.errno, sqlstate=exc.sqlstate) self._do_handshake()