Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Lost connection to MySQL server at 'waiting for initial communication packet'

I have seen many stack overflows questions and some blogs tried workarounds, but nothings helped - hence re-posting the question with more details.

I am seeing the weird behaviour with MySQL and Python application, details are as follows:

1) My application works perfectly fine with MySQL (tried and tested on many platforms) but on this particular machine it fails to connect to MySQL.

structure of application is :

   Windows service -> parent process -> Mysql(child process)

and when application tries to connect to MySQL it get this error:

ERROR 2013 , Lost connection to MySQL server at 'waiting for initial communication packet' - system error 0

I tried:

- connect_timeout=300
- skip-name-resolve=0
- firewall is OFF
- use 17.0.0.1, localhost , IP of machine to connect to but it still fails with same error.

2) Now the weird thing is -

If I manually follow all the steps which application does, It works perfectly fine, details are follows: a) Start MySQL with same command (which application uses) with administrator privileges

mysql --default-file = xxx --basedir =xxx

b) Connect with same credentials ( -u root -P 6075 -h 127.0.0.1) and It works perfectly fine, I double checked all the steps which application does, there is no difference between manually steps and application code.

AM I missing something here ? Any suggestions ?

MySQL version : 5.5.35
Python : 2.7
Base OS : Windows 2012 R2 

Thanks in advance..

like image 734
Samurai Avatar asked Jun 07 '16 06:06

Samurai


People also ask

Why is MySQL not connecting to server?

normally means that there is no MySQL server running on the system or that you are using an incorrect Unix socket file name or TCP/IP port number when trying to connect to the server. You should also check that the TCP/IP port you are using has not been blocked by a firewall or port blocking service.

Does MySQL use TCP IP?

For programs that use the MySQL client library (for example, mysql and mysqldump), MySQL supports connections to the server based on several transport protocols: TCP/IP, Unix socket file, named pipe, and shared memory.

Can not connect to MySQL server 10060?

The error 10060 is returned by the MySQL client when a connection could not be established with the service on the system you are connecting to. This is commonly caused by a firewall block or network issue preventing the connection.


1 Answers

Found a reason - answering my question:

When I used to run MySQL from my application - it was running under system user privileges - so it used to pick "C:\WINDOWS\TEMP" as a temp directory- this directory was messed up - has lot of unnecessary files .. and MySQL was stuck while processing files under this directory...

But when I ran it manually under My administrator account it was using his temp directory... C:\Users\USER_NAME\AppData\Local\Temp and everything was working like magic...

To fix this permanently I changed tmp directory through MySQL conf file and now My Application runs like the Wind.... :)

[mysqld]
tmpdir = 'PATH_TO_THE_DIRECTORY'
like image 101
Samurai Avatar answered Oct 20 '22 06:10

Samurai