# The MongoConnectionException class

(PECL mongo >= 1.0.0)

## Introduction

Thrown when the driver fails to connect to the database.

There are a number of possible error messages to help you diagnose the connection problem. These are:

- `No candidate servers found`

  Thrown when the driver cannot establish a connection to MongoDB (fulfilling the ReadPreferences, if specified).

- `No server name given.`

  This error occurs if you pass in "" as the server name, probably because of an typo with string interpolation, e.g., "$servr" instead of "$server".

- `failed to get host [hostname] or port [portnum] from [server].`

  This indicated that the server string was malformed. "[hostname]" and "[portnum]" will be as much as the driver could dicipher of it.

- `Operation in progress`

  Connecting to the database timed out.

- `Transport endpoint is not connected`

  Generally means that the connection string isn't correct, the driver couldn't even find the database server.

- `couldn't determine master`

  No server in a replica set connection was identified as the primary.

- `couldn't get host info for [server]`

  This indicated that DNS could not resolve the server address you gave. This could easily be caused by a typo, for example, "server" instead of "$server".

- `Invalid Argument`

  This can be caused by attempting to connect to a machine that is up but that the database isn't actually running on. Make sure that you've started the database server before connecting.

- `Permission denied`

  This means that the socket could not be opened due to permissions issues. On Red Hat variants, this can be caused by a default setting that does not allow Apache to create network connections. You can override this setting by running:

      $ /usr/sbin/setsebool -P httpd_can_network_connect 1

  then restarting Apache.

If the error message is not listed above, it is probably an error from the C socket, and you can search the web for its usual cause.

## Class synopsis

MongoConnectionException extends MongoException {
}