mysqlazureazure-mysql-database

MySQL cli client hangs when connecting to Azure managed database


I have a MySQL database on Azure, using the Azure managed database service, and two Ubuntu 20.04 VMs (running PHP applications) in the same VNET. I can connect to the database from both PHP, and from a remote GUI client (SequelPro), so I'm confident the firewall is configured correctly and I'm using the right details.

However, when I try to connect using the mysql CLI client on either of the VMs, it just hangs with no output. I've tried on both VMs, I get the same behaviour.

The command I'm using is:

mysql -u "username@hostname" -p -h "ip_address" -P 3306 database_name -e "SHOW TABLES"

It prompts for the password, so I enter it... and then nothing. On top the mysql process is consuming 100% of CPU.

I can telnet port 3306 on the IP address, I get the usual gibberish asking for mysql_native_password.

If I change the hostname part of the username@hostname to an invalid hostname, then it says "The servername cannot be found". Whereas if I enter an invalid username (or an invalid password) then it hangs just the same. So I'm guessing this has something to do with the gateway part of Azure managed database service that's trying to resolve that name. Everything was working normally up until a few days ago.

There's nothing in any of the logs, and no output on the screen, so I can't work out where to begin trying to fix this.


Solution

  • This appears to be due to https://bugs.mysql.com/bug.php?id=105288 assuming your client is 8.0.27, i hit the same issue today.