无法同时使用MySQL命令行客户端和mysql连接器连接到MySQL Server

问题描述

我最近在计算机上设置了MysqL Server。但是命令行客户端要求输入密码,然后直接关闭不显示任何内容。 python的MysqL连接器也无法连接到它。

import MysqL.connector
mydb = MysqL.connector.connect(username='username',passwd='password')

只要给

InterfaceError: 2003: Can't connect to MysqL server on '127.0.0.1:3306' (10061 No connection Could be made because the target machine actively refused it)

我在某处看到将主机设置为localhost可能会有所帮助。

import MysqL.connector
mydb = MysqL.connector.connect(username='username',passwd='password',host='localhost')

但即使如此:

InterfaceError: 2003: Can't connect to MysqL server on 'localhost:3306' (10061 No connection Could be made because the target machine actively refused it)

目标机器主动拒绝了吗?

这已经发生过一次,我从MysqL Community Installer重新配置了MysqL Server,使它暂时可以在命令行客户端和python连接器上运行。有什么办法可以永久解决此问题?

以下是我使用的软件版本:

  • MysqL服务器8.0.21
  • MysqL服务器安装程序1.34.4.0
  • Python 3.8.2
  • JupyterLab 2.1.2

编辑:应该提到我正在运行Windows 10。

解决方法

#replace用户名作为用户,它应该可以工作

    import mysql.connector
    mydb = mysql.connector.connect(user='username',passwd='password',host='localhost')
,

如果MySQL80命令行客户端在输入密码后关闭,则表示您输入的密码错误。通常,询问的密码是root密码。 在这种情况下,请检查以下页面:https://dev.mysql.com/doc/refman/8.0/en/mysql-installer-workflow.html#mysql-installer-workflow-server,最终您可能必须重置root pwd和用户帐户。

,

在@Erick的帮助下,我为MySQL工作。因此,通常将MySQL作为服务安装在Windows上,并设置为手动启动每个会话。这就是为什么重新配置有效但只能进行一次的原因。您需要做的是go to services,然后寻找MySQL80。如果尚未运行(这是我的事),请双击它以启动,并将“启动类型”设置为自动,以便MySQL Server在系统启动期间自动启动。对我来说,这样做使客户端和python都可以连接到服务器:)。