<p>尝试使用telnet打开到数据库运行端口的连接。
例如</p>
<pre><code>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:~$
</code></pre>
<p>在这种情况下,mysql服务希望使用<code>mysql_native_password</code>
这个问题可能有帮助:</p>
<p><a href="https://stackoverflow.com/questions/50557234/authentication-plugin-caching-sha2-password-is-not-supported">Authentication plugin 'caching_sha2_password' is not supported</a></p>
<blockquote>
<p>You're using mysql_native_password, which is no longer the default.
Assuming you're using the correct connector for your version you need
to specify the auth_plugin argument when instantiating your connection
object</p>
<pre><code>cnx = mysql.connector.connect(user='lcherukuri', password='password',
host='127.0.0.1', database='test',
auth_plugin='mysql_native_password')
</code></pre>
</blockquote>
<p>同时建议尝试以下方法:</p>
<pre><code>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 |
</code></pre>