首页 > 解决方案 > MySQL没有通过python连接

问题描述

MySQL 未连接并显示错误

我通过 pip 安装 mysql.connector 包

这是代码

import mysql.connector
connection = mysql.connector.connect(host = "localhost", user = "root",passwd = "268455")
print(connection)

这是我得到的错误

 D:\Python>"C:/Users/Abdul Muqeet/AppData/Local/Programs/Python/Python38/python.exe" 
"d:/Python/exmaple (mySQL).py"
 Traceback (most recent call last):
 File "d:/Python/exmaple (mySQL).py", line 2, in <module>
 connection = mysql.connector.connect(host = "localhost", user = "root",passwd = "268455")
 File "C:\Users\Abdul Muqeet\AppData\Roaming\Python\Python38\site- 
packages\mysql\connector\__init__.py", line 179, in connect
return MySQLConnection(*args, **kwargs)
File "C:\Users\Abdul Muqeet\AppData\Roaming\Python\Python38\site- 
packages\mysql\connector\connection.py", line 95, in __init__
self.connect(**kwargs)
File "C:\Users\Abdul Muqeet\AppData\Roaming\Python\Python38\site- 
packages\mysql\connector\abstracts.py", line 716, in connect
self._open_connection()
File "C:\Users\Abdul Muqeet\AppData\Roaming\Python\Python38\site- 
packages\mysql\connector\connection.py", line 208, in _open_connection
self._do_auth(self._user, self._password,
File "C:\Users\Abdul Muqeet\AppData\Roaming\Python\Python38\site- 
packages\mysql\connector\connection.py", line 137, in _do_auth
packet = self._protocol.make_auth(
File "C:\Users\Abdul Muqeet\AppData\Roaming\Python\Python38\site- 
packages\mysql\connector\protocol.py", line 99, in make_auth
packet += self._auth_response(client_flags, username, password,
File "C:\Users\Abdul Muqeet\AppData\Roaming\Python\Python38\site- 
packages\mysql\connector\protocol.py", line 58, in _auth_response
auth = get_auth_plugin(auth_plugin)(
File "C:\Users\Abdul Muqeet\AppData\Roaming\Python\Python38\site- 
packages\mysql\connector\authentication.py", line 190, in get_auth_plugin
raise errors.NotSupportedError(
mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not 
supported

我搜索了很多网站,我都做了同样的事情,但仍然出现错误

标签: mysqlmysql-python

解决方案


您必须包含要与之连接的数据库,并且消息不能像您使用的那样。

一个例子:

def MySQLConnect(usernameStr, passwordStr, hostStr, databaseStr, conPrint = True):
    #ESTABLISH THE CONNECTION WITH THE DATABASE
    try:
        con = mysql.connector.connect(
            user = usernameStr,
            password = passwordStr,
            host = hostStr,
            database = databaseStr)

        if conPrint: print('Connection established successfully with the database')
        return con
    except Error:
        print(Error)

推荐阅读