无法在另一台打开端口转发的pc上访问mysql数据库

sqserrrh  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(376)

我在做一个项目,涉及服务器访问数据库。数据库是在mysql(v8.0)上开发的,在另一台pc上是活动的。通过端口转发访问数据库是活动的,但是每当从我的pc访问数据库时,就会出现以下错误。
“不支持身份验证插件{0}”。format(plugin\u name))mysql.connector.errors.notsupportederror:不支持身份验证插件“caching\u sha2\u password”
我试着重新安装mysql-python连接器,检查了所有版本,但都检查出来了(我甚至做了另一个vm来交叉验证)。
请帮忙。任何形式的输入将不胜感激!!

x7rlezfr

x7rlezfr1#

尝试使用telnet打开到数据库运行端口的连接。例如

phill@kore:~$ telnet localhost 3306
Trying ::1...
Connected to localhost.localdomain.
Escape character is '^]'.
J
5.7.22q8TpMY /fT[zVmysql_native_password Connection closed by foreign host.
phill@kore:~$

在本例中,mysql服务希望使用 mysql_native_password 这个问题可能有帮助:
不支持身份验证插件“caching\u sha2\u password”
您使用的是mysql\u native\u密码,这不再是默认密码。假设您正在为您的版本使用正确的连接器,那么在示例化连接对象时需要指定auth\u plugin参数

cnx = mysql.connector.connect(user='lcherukuri', password='password',
                              host='127.0.0.1', database='test',
                              auth_plugin='mysql_native_password')

同时建议尝试以下方法:

mysql> select Host,User,plugin from mysql.user;
+-----------+---------------+-----------------------+
| Host      | User          | plugin                |
+-----------+---------------+-----------------------+
| localhost | root          | mysql_native_password |
| localhost | mysql.session | mysql_native_password |
| localhost | mysql.sys     | mysql_native_password |
mctunoxg

mctunoxg2#

谢谢你的意见。原来,这个问题是由于软件安装不当引起的。从mysql网站安装deb包时,安装可能会丢失一些关键组件,因此无法运行代码。
我试着在终端上运行以下命令

pip install mysql-connector-python

这之后问题就消失了。

相关问题