Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Done
-
3.1.17
-
None
-
Windows Server
Description
I installed now my application, which connects via the ODBC driver with named pipe to mariadb, to the customer's server.
The connection string looks like:
Driver={MariaDB ODBC 3.1 Driver};NAMEDPIPE=1;NO_PROMPT=1;SOCKET=myNamedPipe;USER=root;PASSWORD=myPassword |
There was no connection possible. The response was always that the username or password is wrong. But both were correct.
The MariaDB server is installed to listen only on named pipe (skip-networking).
After some attempts the customer told me that he has an additionally installed MySQL server running on the same machine (installed as service via xampp; listening only on port 3306).
We tried the password of the MySQL server listening on 3306 and the login succeeded. Our named pipe connection string was connecting to the MySQL server which doesn't use named pipes. Instead the connection was done via port 3306.
I've tried much combinations with the connection string. On the customer's server the following settings were completely ignored:
- NAMEDPIPE=1
- TCPIP=0
- OPTION=8192
however the option "PORT" was working. If we set it to something different, then no connection was possible (neither via named pipe nor to the MySQL server listening on port 3306).
This is a bug from my point of view, that settings from my connection string are ignored. I explicitely said via NAMEDPIPE=1 that no networking should be used, but it is ignored. We installed the same MariaDB driver like on my computer (same MSI file). On my computer everything works fine.
So either the ODBC driver doesn't recognize the settings NAMEDPIPE/TCPIP/OPTIONS on the customer's server for some reason or someone else has superseded my connection string.
I have absolutely no idea why this happens.
However as a workaround we enabled networking on the MariaDB server (now listening on a custom port) and we added ";PORT=portno" to the named pipe connection string and now it works.
What could this be? Is there something like a TNSNAMES.ORA on Oracle systems which takes precedence over connection strings?