com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Error de enlace de comunicaciones [duplicado]

Esta pregunta ya tiene una respuesta aquí:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: error de enlace de comunicaciones 32 respuestas

Mi programa que se conecta a una base de datos MySQL estaba funcionando bien. Luego, sin cambiar ningún código utilizado para configurar la conexión, obtengo esta excepción:

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.

¿Que pasó?

El código utilizado para obtener la conexión:

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;
}