I'm smoke testing a new proxysql cluster for a database and having
trouble establishing a connection, which I've not observed before. I was going to make a GH issue but since I haven't reproduced this yet, wanted to respect that this may be a more appropriate forum. First some information about my environment:
I can
connect to the database itself via the command-line from both the proxysql
instance and a remote client, e.g. `mysql -uuser -p -h
example.com -P
3306`, but when attempting to connect through proxysql, e.g. `mysql
-uuser -p -h
myproxysql.com -P 6022` the client receives the following
error (hostname anonymized):
```
ERROR 1045 (28000): ProxySQL Error: Access denied for user 'user'@'1.2.3.4' (using password: YES)
```
and in the proxysql logs I see a slew of these errors:
```
2018-10-25
20:55:41 MySQL_Protocol.cpp:138:decode_char(): [ERROR] Invalid
char2018-10-25 20:55:41 MySQL_Protocol.cpp:138:decode_char(): [ERROR]
Invalid char2018-10-25 20:55:41 MySQL_Protocol.cpp:138:decode_char():
[ERROR] Invalid char2018-10-25 20:55:41
MySQL_Protocol.cpp:138:decode_char(): [ERROR] Invalid char2018-10-25
20:55:41 MySQL_Protocol.cpp:138:decode_char(): [ERROR] Invalid
char2018-10-25 20:55:41 MySQL_Protocol.cpp:138:decode_char(): [ERROR]
Invalid char2018-10-25 20:55:41 MySQL_Protocol.cpp:138:decode_char():
[ERROR] Invalid char2018-10-25 20:55:41
MySQL_Protocol.cpp:138:decode_char(): [ERROR] Invalid char2018-10-25
20:55:41 MySQL_Protocol.cpp:138:decode_char(): [ERROR] Invalid
char2018-10-25 20:55:41 MySQL_Protocol.cpp:138:decode_char(): [ERROR]
Invalid char2018-10-25 20:55:41 MySQL_Protocol.cpp:138:decode_char():
[ERROR] Invalid char2018-10-25 20:55:41
MySQL_Protocol.cpp:138:decode_char(): [ERROR] Invalid char2018-10-25
20:55:41 MySQL_Protocol.cpp:138:decode_char(): [ERROR] Invalid
char2018-10-25 20:55:41 MySQL_Protocol.cpp:138:decode_char(): [ERROR]
Invalid char2018-10-25 20:55:41 MySQL_Protocol.cpp:138:decode_char():
[ERROR] Invalid char
```
I've confirmed that these errors are written directly after an attempt is made to connect to the cluster. I tried to see on GH where decode_char() is called, but the only invocation I could find was in another function called unhex_pass() which I also couldn't see called anywhere, other than a patch that doesn't appear to be merged yet
https://github.com/sysown/proxysql/search?q=unhex_pass&unscoped_q=unhex_pass. I could of course be doing a bad job of searching thoroughly. I'm also kind of curious why proxysql would declare a character invalid that is valid in MySQL?