Python - MySQL SSL Connections

17,301

I just got the following to work with Python 2.7 and MySQLdb (1.2.4):

database = MySQLdb.connect(host='hostname', user='username', db='db_name',
    passwd='PASSWORD', ssl={'ca': '/path/to/ca-file'})

This is what you had so there must be something else going on here. I wonder if you have something either incorrect with the your local CA file or possibly the cert on the server? Can you get a copy of the CA file from the server?

Share:
17,301
Silencer310
Author by

Silencer310

Updated on June 14, 2022

Comments

  • Silencer310
    Silencer310 almost 2 years

    I have a MySQL Server set up to use SSL and I also have the CA Certificate.

    When I connect to the server using MySQL Workbench, I do not need the certificate. I can also connect to the server using Python and MySQLdb on a Mac without the CA-certificate.

    But when I try to connect using the exact same setup of Python and MySQLdb on a windows machine, I get access denied. It appears that I need the CA. And when I enter the CA, I get the following error

    _mysql_exceptions.OperationalError: (2026, 'SSL connection error')

    My code to open the connection is below:

    db = MySQLdb.connect(host="host.name",    
                     port=3306,
                     user="user",         
                     passwd="secret_password",  
                     db="database", 
                     ssl={'ca': '/path/to/ca/cert'})  
    

    Could anyone point out what the problem is on a windows?