我在 Azure 上有一个 MySQL 数据库,使用 Azure 托管数据库服务,以及在同一个 VNET 中的两个 Ubuntu 20.04 VM(运行 PHP 应用程序)。我可以从 PHP 和远程 GUI 客户端 (SequelPro) 连接到数据库,因此我确信防火墙配置正确并且我使用了正确的详细信息。
但是,当我尝试在任一虚拟机上使用 mysql CLI 客户端进行连接时,它只是挂起而没有输出。我在两个虚拟机上都试过了,我得到了相同的行为。
我正在使用的命令是:
mysql -u "username@hostname" -p -h "ip_address" -P 3306 database_name -e "SHOW TABLES"
它提示输入密码,所以我输入它......然后什么都没有。mysqltop
进程正在消耗100%的CPU。
我可以在 IP 地址上 telnet 端口 3306,我得到了通常的胡言乱语,要求输入 mysql_native_password。
如果我将主机名部分更改为username@hostname
无效的主机名,则会显示“找不到服务器名”。而如果我输入了无效的用户名(或无效的密码),那么它就会挂起。所以我猜这与试图解析该名称的 Azure 托管数据库服务的网关部分有关。直到几天前,一切都正常工作。
任何日志中都没有任何内容,屏幕上也没有输出,所以我不知道从哪里开始尝试解决这个问题。