Python mysql-connector hangs indefinitely when connecting to remote mysql via SSH

2024/10/16 3:24:28

I am Testing out connection to mysql server with python. I need to ssh into the server and establish a mysql connection. The following code works:

from sshtunnel import SSHTunnelForwarder
import pymysql
import mysql.connectorwith SSHTunnelForwarder((ssh_host, 22), ssh_username=ssh_user, ssh_password=ssh_password,remote_bind_address=("127.0.0.1", 3306)) as tunnel:config = {'user': user,'password': password,'host': tunnel.local_bind_host,'port': tunnel.local_bind_port,'database': db}conn = pymysql.connect(**config)query = '''SELECT VERSION();'''data = pd.read_sql_query(query, conn)print(data)connection.close()

However, when using mysql.connector instead of pymysql such as below:

with SSHTunnelForwarder((ssh_host, 22), ssh_username=ssh_user, ssh_password=ssh_password,remote_bind_address=("127.0.0.1", 3306)) as tunnel:config = {'user': user,'password': password,'host': tunnel.local_bind_host,'port': tunnel.local_bind_port,'database': db}conn = mysql.connector.connect(**config)mycursor = cnx.cursor()mycursor.execute("SELECT VERSION()")myresult = mycursor.fetchall()

The code stops at conn = mysql.connector.connect(**config). It never gives an error or stops, it just hangs on this line.

Why is this?

Aren't the config attributes valid for this module?

Answer

As there seems to be an aswer here I followed the comment from @André Restivo and it seems to work for me, set use_pure to True. I'm not sure what does this exactly do:

    def __get_db_connection(self) -> None:"""Connect to the database"""try:logger.debug(f'Connecting to mysql db "{self.config.mysql_database}"...')with mysql.connector.connect(host=self.config.mysql_ip,port=self.tunnel.local_bind_port,user=self.config.mysql_user,password=self.config.mysql_password,database=self.config.mysql_database,use_pure=True) as connection:self.connection = connectionlogger.info(connection)except mysql.connector as e:logger.error(e)raise
https://en.xdnf.cn/q/69210.html

Related Q&A

Smooth the edges of binary images (Face) using Python and Open CV

I am looking for a perfect way to smooth edges of binary images. The problem is the binary image appears to be a staircase like borders which is very unpleasing for my further masking process. I am att…

Is there some way to save best model only with tensorflow.estimator.train_and_evaluate()?

I try retrain TF Object Detection API model from checkpoint with already .config file for training pipeline with tf.estimator.train_and_evaluate() method like in models/research/object_detection/model_…

Matching words with NLTKs chunk parser

NLTKs chunk parsers regular expressions can match POS tags, but can they also match specific words? So, suppose I want to chunk any structure with a noun followed by the verb "left" (call th…

How to create a dual-authentication HTTPS client in Python without (L)GPL libs?

Both the client and the server are internal, each has a certificate signed by the internal CA and the CA certificate. I need the client to authenticate the servers certificate against the CA certificat…

Generate a certificate for .exe created by pyinstaller

I wrote a script for my company that randomly selects employees for random drug tests. It works wonderfully, except when I gave it to the person who would use the program. She clicked on it and a messa…

Some doubts modelling some features for the libsvm/scikit-learn library in python

I have scraped a lot of ebay titles like this one:Apple iPhone 5 White 16GB Dual-Coreand I have manually tagged all of them in this wayB M C S NAwhere B=Brand (Apple) M=Model (iPhone 5) C=Color (White)…

Python ReportLab use of splitfirst/splitlast

Im trying to use Python with ReportLab 2.2 to create a PDF report. According to the user guide,Special TableStyle Indeces [sic]In any style command the first row index may be set to one of the special …

Extract specific section from LaTeX file with python

I have a set of LaTeX files. I would like to extract the "abstract" section for each one: \begin{abstract}.....\end{abstract}I have tried the suggestion here: How to Parse LaTex fileAnd tried…

Installing LXML, facing a legacy-install-failure error

Trying to install lxml on Python 311. Faced with this error. PS C:\Users\chharlie\Desktop\code> pip install lxml Collecting lxmlUsing cached lxml-4.9.1.tar.gz (3.4 MB)Preparing metadata (setup.py) .…

PyInstaller wont install, Python 3.6.0a4 and x64 Windows

I have said Python version (from https://www.python.org/downloads/windows/), and x64 Windows 10. Every time I try to execute "pip install pyinstaller" it crashes with an error:C:\WINDOWS\syst…