I tested my application on windows environment and it works fine. I have it set up on a remote linux server and suddenly I started getting the following error with one of the APIs while all the others work fine:
MySql.Data.dll Error : 0 : Unable to connect to any of the specif
ied MySQL hosts. MySql.Data.MySqlClient.MySqlException: Unable to
connect to any of the specified MySQL hosts.
any hint on why this could happen, connection settings are the same and nothing changed.
Related
I've tested everything, and every possible way.
I already disabled iptables, I did everything myself.
I gave joker permissions on all users and database in mysql.
And anyway, how can test https://cp.nationwarriors.com/ the error persists:
Fatal error connecting to mysql server.
SQLSTATE [HY000] [2003] Can not connect to MySQL server on '177.87.231.218' (111)
in localhost I get it.
I checked the door is normally open at https://www.yougetsignal.com/tools/open-ports/
After a Teamviewer session and a few tests we've discovered that the problem is with the hosters firewall.
You can telnet from every location to the database server, except from the webserver.
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..
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'
I was getting this same error trying to set up a SQL Server Linked Server
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "DBLINKED".
OLE DB provider "MSDASQL" for linked server "DBLINKED" returned message "[MySQL][ODBC 8.0(w) Driver]Lost connection to MySQL server at 'waiting for initial communication packet', system error: 10060". (Microsoft SQL Server, Error: 7303)
You mentioned it in your initial question - the Connection Timeout was the issue for me.
The default is 0 - raised it to 300. I thought default of 0 would mean no timeout, but it's obviously something reasonably short, and I was trying to connect to a remote database on a slow internet connection. A lot of other question and answers out there relate to connecting within the same machine, so this error isn't reported much.
I have a Windows service (using .NET framework 4.5) installed on a Windows 2012 R2 machine. I have MySQL connector 6.9.7 and MySQL 5.6.25
When my service is started I am getting following error.
Authentication to host 'xxx.xx.x.xx' for user 'yyyyy' using method 'mysql_native_password' failed with message: Reading from the stream has failed. ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Reading from the stream has failed. ---> System.IO.EndOfStreamException: Attempted to read past the end of the stream.
or sometimes:
Unable to connect to any of the specified MySQL hosts.
If I restart the service in a while all seems to work properly. Any idea what the problem is?
Migrating OP's solution from the question to an answer:
After further investigation we have found that our database version was 5.6.25. We have tried same connectivity with our old db 5.5.16 and we didn't face the same issue, so it looks like issue is the database itself. Our new database is installed on a Linux machine.
There have been a number of questions on this topic on Stackoverflow but not exactly my situation.
I have a MySQL server installed on my PC, which was working fine. We used to have a peer-to-peer network in the office. My PC was just named "MY-PC". Some change occurred to the network and my PC is now connected to a "proper" network, and the name of the PC has changed to "MY-PC.mycompanywebsite.co.uk".
Now every time I try to connect to MySQL it gives me the error:
#1130 - Host 'My-PC.mycompanywebsite.co.uk' is not allowed to connect to this MySQL server
I can't log in using the command line tool or anything. Is there a config file setting I need to change to get this working?
By the way, this is a version of MySQL which came in an installation of WAMPServer, so I did not configure it myself.
I am a windows 7 user and I'm having an issue with MySQL and XAMPP.
I use the MySQL that comes with XAMPP. I have changed the root password of MySQL using XAMPP's security page. Then I tried to connect to the MySQL server via Netbeans.
To try to connect I clicked on MySQL server option in the database drop down of the services pane, I gave it some settings:
server host name:localhost
username:root
port:3306
password:(my sql password)
path to admin module:(http:'//')localhost/phpmyadmin
sql start path:D:\D-drive\xampp-portable\mysql\bin\mysqld.exe(also tried mysql_start.bat)
sql stop path:</b>D:\D-drive\xampp-portable\mysql\bin\mysqladmin.exe(also tried sql_stop.bat)
Then I right click on MySQL server at localhost [root] and select Connect, this is when I get an error:
Unable to connect to the MySQL server:
org.netbeans.api.db.explorer.DatabaseException: org.netbeans.api.db.explorer.DatabaseException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server..
The server may not be running or your MySQL connection properties may not be set correctly. Do you want to edit your MySQL connection properties?
Changing localhost to 127.0.0.1 doesn't work either. I have the jdbc driver as well.
The fix that worked for me is as follows:
Please see that netbeans is an allowed program in your firewall as well as antivirus software
to check:
if netbeans startup page says "cannot connect to internet" then you must change your firewall and/or antivirus settings to allow it