I have a python script running on an Amazon EC2 instance (linux) that scrapes the data from a source and outputs a pandas dataframe to me. I want to send this dataframe to MySQL on Amazon RDS. But when I run the script, it throws me the following error:
sqlalchemy.exc.InterfaceError: (mysql.connector.errors.InterfaceError) 2026 (HY000): SSL connection error: SSL_CTX_set_tmp_dh failed
Before executing the script on an ec2 instance, I was running it on my local machine and it was working fine. Meaning, I was able to send the data to the RDS scraped by my scraper. But now that I am running the script on EC2, it is showing me SSL connection errors.
I might not have configured the EC2 instance correctly or might have forgotten to install something. I don't work with SSL much, so I'm finding it difficult figuring out how this is supposed to be set up. Any pointers, even obvious ones, will likely help at this stage.
I have tried some of the solutions that i found on stack but none of them worked. This is my code to connect to the database:
def dbConnect():
end_point = xxx
username = xxx
password = xxx
port=3306
global dbname
dbname=xxx
conn = pymysql.connect(end_point, user=username,port=port,passwd=password, db=dbname)
global eng
eng=create_engine('mysql+mysqlconnector://xxx:xxx@xxx:3306')
return dbname,eng
I have something very similar, although I use PuTTy for the SSH to create a port forwared tunnel.
Make sure you have the security groups set up correctly between your EC2 instance and RDS too.
The solution is to downgrade openssl.
conda install openssl=1.0.2p
See this thread for more information:
https://github.com/ContinuumIO/anaconda-issues/issues/10646
Also this other question .
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.