International PHP Conference 2018 - Fall Edition

Runtime Configuration

The behaviour of these functions is affected by settings in php.ini.

MySQL Configuration Options
Name Default Changeable Changelog
mysql.allow_local_infile "1" PHP_INI_SYSTEM  
mysql.allow_persistent "1" PHP_INI_SYSTEM  
mysql.max_persistent "-1" PHP_INI_SYSTEM  
mysql.max_links "-1" PHP_INI_SYSTEM  
mysql.trace_mode "0" PHP_INI_ALL Available since PHP 4.3.0.
mysql.default_port NULL PHP_INI_ALL  
mysql.default_socket NULL PHP_INI_ALL Available since PHP 4.0.1.
mysql.default_host NULL PHP_INI_ALL  
mysql.default_user NULL PHP_INI_ALL  
mysql.default_password NULL PHP_INI_ALL  
mysql.connect_timeout "60" PHP_INI_ALL PHP_INI_SYSTEM in PHP <= 4.3.2. Available since PHP 4.3.0.
For further details and definitions of the PHP_INI_* modes, see the Where a configuration setting may be set.

Here's a short explanation of the configuration directives.

mysql.allow_local_infile integer

Allow accessing, from PHP's perspective, local files with LOAD DATA statements

mysql.allow_persistent boolean

Whether to allow persistent connections to MySQL.

mysql.max_persistent integer

The maximum number of persistent MySQL connections per process.

The maximum number of MySQL connections per process, including persistent connections.

mysql.trace_mode boolean

Trace mode. When mysql.trace_mode is enabled, warnings for table/index scans, non free result sets, and SQL-Errors will be displayed. (Introduced in PHP 4.3.0)

mysql.default_port string

The default TCP port number to use when connecting to the database server if no other port is specified. If no default is specified, the port will be obtained from the MYSQL_TCP_PORT environment variable, the mysql-tcp entry in /etc/services or the compile-time MYSQL_PORT constant, in that order. Win32 will only use the MYSQL_PORT constant.

mysql.default_socket string

The default socket name to use when connecting to a local database server if no other socket name is specified.

mysql.default_host string

The default server host to use when connecting to the database server if no other host is specified. Doesn't apply in SQL safe mode.

mysql.default_user string

The default user name to use when connecting to the database server if no other name is specified. Doesn't apply in SQL safe mode.

mysql.default_password string

The default password to use when connecting to the database server if no other password is specified. Doesn't apply in SQL safe mode.

mysql.connect_timeout integer

Connect timeout in seconds. On Linux this timeout is also used for waiting for the first answer from the server.

add a note add a note

User Contributed Notes 2 notes

9 years ago
you can also easily work around the issue if you simply create a symbolic link to the socket by executing the following in terminal:

sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

[EDIT BY danbrown AT php DOT net: Typo spotted by (asterizk AT me DOT com) - "should probably say 'sudo ln -s ...'"]
9 years ago
mysql_default_socket can take a filename as the argument.  By default--at least with the default configuration provided by Mac OS X 10.5--it is /var/mysql/mysql.sock.  If necessary, you can edit your php.ini to change it to /tmp/mysql.sock.
To Top