Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PDO::__construct(): send of 108 bytes failed with errno=32 Broken pipe

When I log into my command line mysql I can no longer access any PHP application that requires a database connection. This happens every time. The steps to cause the issue on my localhost:

Command line:
mysql -u root (no password for localhost)
mysql> 

I do not execute or do anything at this point. I load up any page that requires a database connection using root:

PDO::__construct(): send of 108 bytes failed with errno=32 Broken pipe

If I exit mysql the pages come back but another issue comes up when attempting to load two pages at the same time (in browser tabs) it will cause one of them to break until the page loads, then I can refresh

My.cnf:

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

wait_timeout=5000
max_allowed_packet=100m
max_user_connections=1000
like image 637
chadpeppers Avatar asked Mar 20 '15 14:03

chadpeppers


2 Answers

Set up wait_timeout in your MySQL my.cnf config file:

wait_timeout=3600

This config file is located in the /etc/mysql/my.cnf (Ubuntu/Debian) and /usr/local/mysql/my.cnf (OSX) and /location of server bin folder/mysql/my.cnf for windows.

Restart MySQL server and check this should work.

like image 177
A.D. Avatar answered Nov 05 '22 02:11

A.D.


For "Send of X bytes failed with errno=32 Broken pipe", most responses around the internet would advise you to increase wait_timeout for your connections. This didn't work for us.

But after struggling for some time, we sort of wildly guessed that it is maybe max_allowed_packet that needs to be increased. And indeed, lifting it up to 500M did a good job.

Only after it already worked, we found that other people have similar experience (e.g. https://www.somacon.com/p574.php )

like image 42
Miro Avatar answered Nov 05 '22 03:11

Miro