The client tried to connect with a protocol the MySQL server does not recognize or support, so the handshake fails.
MySQL Error 2047 (CR_CONN_UNKNOW_PROTOCOL) means the client requested a connection protocol the server does not understand. Confirm both sides support the same protocol and explicitly set a valid one, such as TCP or Unix socket, to clear the error.
Wrong or unknown protocol
Error 2047 appears during the initial connection handshake when the MySQL client offers an unsupported or misspelled network protocol. The server immediately terminates the session, returning the message “Wrong or unknown protocol.”
The issue is client-side but often reflects server settings that disable certain protocols.
It must be fixed before any SQL can run because no session is established.
The error surfaces with CLI tools (mysql, mysqldump), GUI clients, or application drivers whenever they are launched with an invalid --protocol flag or connect through a mismatched transport, such as trying to use a Windows named pipe against a Linux server.
Version mismatches, disabled TCP ports, or incorrectly compiled client libraries can also trigger the problem.
Because the handshake fails, applications cannot query, migrate, or replicate data.
Production outages, failed CI pipelines, and broken analytics jobs follow. Resolving the protocol mismatch restores connectivity instantly and prevents cascading downtime.
The primary cause is a protocol flag mismatch between client and server. Secondary causes include firewalls blocking the selected transport, servers started with the skip-networking option, or misconfigured connection strings in ORM layers.
.
Passing --protocol=pipe or --protocol=memory when the server was not compiled with named pipe or shared memory support returns the error immediately.
If mysqld starts with --skip-networking or bind-address=127.0.0.1 while the client requests TCP from a remote host, the server treats the request as unknown.
Typos such as --protocol=tcpp or misspelled JDBC parameters confuse the client library and generate the 2047 code.
Attempting Windows-only named pipes from a Unix client, or Unix sockets from Windows, leads to protocol negotiation failure.
.
No. The connection never reaches the SQL layer. You must adjust client flags or server settings first.
It causes 2047 only when clients request TCP. Local socket connections continue to work.
Upgrading does not change default protocols. You still need to align protocol settings after an upgrade.
Galaxy’s connection wizard detects server capabilities, sets a valid protocol automatically, and surfaces clear guidance, preventing 2047 before queries run.