我正在尝试使用下面提到的python代码连接Mysql服务器。
import mysql.connector
mydb = mysql.connector.connect(
host = "127.0.0.1",
port = 5000,
user = "user id",
password = "password"
)
print(mydb)但是,在运行此代码以测试我是否与MySQL连接时,我面临着无法理解的错误。
Traceback (most recent call last):
File "C:\Users\varul.jain\Desktop\Test Phase\Mysql\mydb_test.py", line 7, in <module>
password = "root"
File "C:\Users\varul.jain\AppData\Local\Programs\Python\Python36\lib\site-packages\mysql\connector\__init__.py", line 179, in connect
return MySQLConnection(*args, **kwargs)
File "C:\Users\varul.jain\AppData\Local\Programs\Python\Python36\lib\site-packages\mysql\connector\connection.py", line 95, in __init__
self.connect(**kwargs)
File "C:\Users\varul.jain\AppData\Local\Programs\Python\Python36\lib\site-packages\mysql\connector\abstracts.py", line 716, in connect
self._open_connection()
File "C:\Users\varul.jain\AppData\Local\Programs\Python\Python36\lib\site-packages\mysql\connector\connection.py", line 210, in _open_connection
self._ssl)
File "C:\Users\varul.jain\AppData\Local\Programs\Python\Python36\lib\site-packages\mysql\connector\connection.py", line 142, in _do_auth
auth_plugin=self._auth_plugin)
File "C:\Users\varul.jain\AppData\Local\Programs\Python\Python36\lib\site-packages\mysql\connector\protocol.py", line 102, in make_auth
auth_data, ssl_enabled)
File "C:\Users\varul.jain\AppData\Local\Programs\Python\Python36\lib\site-packages\mysql\connector\protocol.py", line 58, in _auth_response
auth = get_auth_plugin(auth_plugin)(
File "C:\Users\varul.jain\AppData\Local\Programs\Python\Python36\lib\site-packages\mysql\connector\authentication.py", line 191, in get_auth_plugin
"Authentication plugin '{0}' is not supported".format(plugin_name))
mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported注意:我已将默认值初始化为5000。
为了测试目的,我初始化了端口5000、用户根和密码根。
但是,根据上述错误,默认密码的授权不可用。
是否有任何方法检查用户id和密码,以交叉验证和相应更新python代码?
建议会有帮助
发布于 2019-05-23 06:47:54
根据python的SQL文档,library.you需要将auth插件指定如下:
conn = mysql.connector.connect(user='root', password='password', host='127.0.0.1',port=5000, database='test', auth_plugin='mysql_native_password')
print(conn)发布于 2020-03-22 04:56:47
遵循以下步骤:
从此安装MySQL服务器。
mysql-connector-python (在您的python环境中)发布于 2021-02-11 13:44:01
我在使用webmin + python3的python3 VPS上遇到了类似的问题。
起初,我认为这可能是由于连接包造成的,所以我尝试了:
两者都解决不了这个问题。然后我发现网站上有一些其他的连接方法(我现在不记得它的地址了),它详细解释了pro和它们的原因,根据它们,我最终选择了使用mysqlclient。
以上都没有解决我的问题,我仍然面临连接错误。
我尝试了几次随机测试,意外地在配置文件中使用根和跳过授予表选项,我能够使用SSH python代码登录mysql,但这不是原因,因为正常的新创建的用户仍然无法登录,无论我在代码中访问哪个主机,localhost,127.0.0.1,域,.
因此,我撤销跳过授予表选项,因为这是危险的,没有保护(只是为了测试)。
最近,从默认的MySQL服务器中已经存在用户'root‘开始,我发现它有4个条目,所以我尝试在webmin -> Server -> MySQL ->用户权限中创建4个类似的条目记录。
这些记录具有相同的用户名和较少的特权权限,但所分配的主机内容类似。它们是“本地”、“127.0.0.1”、“myservername.vps.provider.ca”、“:1”
(我不知道最后一个是什么意思)
并且,宾果,在添加了上述4个条目之后,新用户可以使用通过python3代码提供的密码登录。
(请记住,第一次您必须在MySQL服务器页面中设置带有密码的MySQL管理' root‘,以便密码登录授权功能能够工作,并且密码不需要与系统的根密码相同)
仅此而已,这需要我6个小时。希望它也能帮助使用webmin的人。如果它对你有帮助,请投赞成票。谢谢
https://stackoverflow.com/questions/56269353
复制相似问题