# PDO_MYSQL DSN

(PECL PDO_MYSQL >= 0.1.0)

PDO_MYSQL DSN — Connecting to MySQL databases

### Description

The PDO_MYSQL Data Source Name (DSN) is composed of the following elements:

DSN prefix

  The DSN prefix is `mysql:`.

`host`

  The hostname on which the database server resides.

`port`

  The port number where the database server is listening.

`dbname`

  The name of the database.

`unix_socket`

  The MySQL Unix socket (shouldn't be used with `host` or `port`).

`charset`

  The character set. See the character set concepts documentation for more information.

  Prior to PHP 5.3.6, this element was silently ignored. The same behaviour can be partly replicated with the `PDO::MYSQL_ATTR_INIT_COMMAND` driver option, as the following example shows.

  Warning

  The method in the below example can only be used with character sets that share the same lower 7 bit representation as ASCII, such as ISO-8859-1 and UTF-8. Users using character sets that have different representations (such as UTF-16 or Big5) must use the `charset` option provided in PHP 5.3.6 and later versions.

  Example #1 Setting the connection character set to UTF-8 prior to PHP 5.3.6

  `<?php
  $dsn = 'mysql:host=localhost;dbname=testdb';
  $username = 'username';
  $password = 'password';
  $options = array(
  PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
  );
  $dbh = new PDO($dsn, $username, $password, $options);
  ?>`

### Examples

Example #2 PDO_MYSQL DSN examples

The following example shows a PDO_MYSQL DSN for connecting to MySQL databases:

    mysql:host=localhost;dbname=testdb

More complete examples:

    mysql:host=localhost;port=3307;dbname=testdb
    mysql:unix_socket=/tmp/mysql.sock;dbname=testdb

### Notes

> Note: Unix only:

> When the host name is set to `"localhost"`, then the connection to the server is made thru a domain socket. If PDO_MYSQL is compiled against libmysqlclient then the location of the socket file is at libmysqlclient's compiled in location. If PDO_MYSQL is compiled against mysqlnd a default socket can be set thru the pdo_mysql.default_socket setting.