Symfony console connection refused with MAMP
Recently I switched from a custom system setup on my Mac (Apache, MySQL, PHP, ...) to the MAMP Pro system. Unfortunately the Symfony console won't work with the default configuration in
parameters.yml like the following:
# Database parameters database_driver: pdo_mysql database_host: 127.0.0.1 database_port: ~ database_name: database database_user: myuser database_password: password
The result is a refused connection. But why?
MAMP by default doesn't allow TCP connections.
According to this answer on Stackoverflow, the easiest solution is to just use
localhost instead of
The longer explanation is:
On Unix, MySQL programs treat the host name localhost specially, in a way that is likely different from what you expect compared to other network-based programs. For connections to localhost, MySQL programs attempt to connect to the local server by using a Unix socket file. This occurs even if a --port or -P option is given to specify a port number. To ensure that the client makes a TCP/IP connection to the local server, use --host or -h to specify a host name value of 127.0.0.1, or the IP address or name of the local server. You can also specify the connection protocol explicitly, even for localhost, by using the --protocol=TCP option.