#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. Большое спасибо. Это решило мою проблему!