pssturges
pssturges

Reputation: 1

Python 3.12 Connecting to local MySQL error

I've been using a Python script for a couple of years without a problem on Xubuntu 20.04, now on 24.04, I’m getting errors connecting to the MySQL server on the same machine.

Relevant code:

import requests
import datetime
import json
from urllib.parse import urlencode, quote_plus
from time import sleep
import mysql.connector

def connectDB():
  return mysql.connector.connect(
    host="localhost",
    user="myuser",
    passwd="mypass",
    database="HomeManagement",
    auth_plugin='mysql_native_password'
  )

timeNow = datetime.datetime.now().replace(microsecond=0, second=0)
print(timeNow)
mydb = connectDB()

Errors:

2024-05-18 19:32:00 Traceback (most recent call last):   File "/usr/local/bin/test.py", line 19, in <module>     mydb = connectDB()            ^^^^^^^^^^^   File "/usr/local/bin/test.py", line 9, in connectDB     return mysql.connector.connect(            ^^^^^^^^^^^^^^^^^^^^^^^^   File "/usr/lib/python3/dist-packages/mysql/connector/__init__.py", line 173, in connect     return MySQLConnection(*args, **kwargs)            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/usr/lib/python3/dist-packages/mysql/connector/connection.py", line 102, in __init__     self.connect(**kwargs)   File "/usr/lib/python3/dist-packages/mysql/connector/abstracts.py", line 735, in connect     self._open_connection()   File "/usr/lib/python3/dist-packages/mysql/connector/connection.py", line 250, in _open_connection     self._do_auth(self._user, self._password,   File "/usr/lib/python3/dist-packages/mysql/connector/connection.py", line 155, in _do_auth     self._socket.switch_to_ssl(ssl_options.get('ca'),   File "/usr/lib/python3/dist-packages/mysql/connector/network.py", line 427, in switch_to_ssl     self.sock = ssl.wrap_socket(                 ^^^^^^^^^^^^^^^ AttributeError: module 'ssl' has no attribute 'wrap_socket' 

Searching around, it seems like its due some change in python 3.12, but I can’t quite pin it down.

Have tried using pymsql but get:

pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 2] No such file or directory)")

Upvotes: 0

Views: 552

Answers (1)

I faced same problem with Python 3.12 , xampp (php 7.3) then I do "pip uninstall mysql-connector-python"

then again install "pip install mysql-connector-python==8.0.21"

and now its working fine. NOTE:: directly pip install mysql-connector-python is installing about 9 version, so its not working, thats why I uninstall 9 and install 8.0.21 version.

Upvotes: 1

Related Questions