com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: falha no link de comunicações [duplicado]

Esta pergunta já tem uma resposta aqui:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: falha no link de comunicações 32 respostas

Meu programa que se conecta a um banco de dados MySQL estava funcionando bem. Então, sem alterar nenhum código usado para configurar a conexão, recebo esta exceção:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

O que aconteceu?

O código usado para obter a conexão:

private static Connection getDBConnection() throws SQLException, InstantiationException, IllegalAccessException, ClassNotFoundException {
    String username = "user";
    String password = "pass";
    String url = "jdbc:mysql://www.domain.com:3306/dbName?connectTimeout=3000";

    Class.forName("com.mysql.jdbc.Driver");
    Connection conn = DriverManager.getConnection(url, username, password);
    return conn;
}

questionAnswers(14)

yourAnswerToTheQuestion