When you want to connect with a client program to a MySQL server that is listening to different network interfaces than those compiled into your client, you can use one of the following methods:
Start the client with --host=host_name --port=port_number to connect via TCP/IP to a remote host, or with --host=localhost --socket=file_name to connect to a local host via a Unix socket or a Windows named pipe.
As of MySQL 4.1, start the client with --protocol=tcp to connect via TCP/IP, --protocol=socket to connect via a Unix socket, --protocol=pipe to connect via a named pipe, or --protocol=memory to connect via shared memory. For TCP/IP connections, you may also need to specify --host and --port options. For the other types of connections, you may need to specify a --socket option to specify a socket or named pipe name, or a --shared-memory-base-name option to specify the shared memory name.
On Unix, set the MYSQL_UNIX_PORT and MYSQL_TCP_PORT environment variables to point to the Unix socket and TCP/IP port before you start your clients. If you normally use a specific socket or port, you can place commands to set these environment variables in your .login file so that they apply each time you log in. See Environment variables.
Specify the default socket and TCP/IP port in the [client] group of an option file. For example, you can use C:\my.cnf on Windows, or the .my.cnf file in your home directory on Unix. See Option files.
In a C program, you can specify the port or socket arguments in the mysql_real_connect() call. You can also have the program read option files by calling mysql_options(). See C API functions.
If you are using the Perl DBD::mysql module, you can read the options from the MySQL option files. For example:
$dsn = "DBI:mysql:test;mysql_read_default_group=client;" . "mysql_read_default_file=/usr/local/mysql/data/my.cnf"; $dbh = DBI->connect($dsn, $user, $password);
See Perl.