Ошибка атрибута: модуль «mysql.connector» не имеет атрибута «cursor_cext»

#python #mysql #mysql-connector

Вопрос:

При попытке подключиться к своей базе данных возникает следующая ошибка:

ошибка

 AttributeError: module 'mysql.connector' has no attribute 'cursor_cext'
 

code.py

     import mysql
    import mysql.connector  
    from mysql.connector import errorcode 
    
    
    # MySQL database access parameters
    DB_PARAMS = {
        "user": "root",
        "password": "letmego",
        "host": "localhost",
        "port": 3306,
        "raise_on_warnings": False,
        "database": "playground"
    }
    
    
    def connect_db(
        params: dict,
        verbose: bool = True
    ) -> mysql.connector.connection_cext.CMySQLConnection:
    
        try:
        conn = mysql.connector.connect(**params)
    except mysql.connector.Error as err:
        print("[!] Function 'connect_db'")
        print(f"t{err}n")
        exit(1)
    else:
        if verbose:
            print(f"Database '{params['database']}' successfully connected.n")
        return conn

if __name__ == '__main__':

    # connect to MySQL
    conn = connect_db(DB_PARAMS)
 

Пожалуйста, сообщите, что я здесь сделал не так. Я также думаю, что импортировал правильные зависимости.

Комментарии:

1. Это все твой код? Попробуйте установить соединитель mysql с помощью pip install mysql-connector-python

2. @MiguelPinheiro я mysql-connector-python все же установил

Ответ №1:

connect_db Метод возвращает не тот тип, о котором вы говорите. Как вы можете видеть в приведенном здесь коде, он возвращает mysql.connector.connection.MySQLConnection объект, а не a mysql.connector.connection_cext.CMySQLConnection . Вы можете исправить свой код, импортировав нужный класс с помощью:

from mysql.connector.connection import MySQLConnection

А затем замените ввод в вашем методе connect_db на:

 def connect_db(
        params: dict,
        verbose: bool = True
    ) -> MySQLConnection:
 

Комментарии:

1. Большое спасибо. Это решило мою проблему!