使用 mysql C 连接器连接到 memsql 时出错
Error connecting to memsql with mysql C connector
我正在尝试通过 mysql C 连接器连接到 memsql:
MYSQL *connection = mysql_init(NULL);
mysql_real_connect(connection, HOST, USER, NULL, DBNAME, 0, NULL, 0);
但我得到 "Error in server handshake"
。
从终端 (mysql -u root -h 127.0.0.1 -P 3306
) 连接工作正常。我尝试设置 root 密码,但没有任何变化。
我还将 SSL_MODE_DISABLED
添加到 mysql_options()
并确保为 memsql 禁用了 SSL。
可能是什么问题?
您使用的是哪个版本的 MySQL C 连接器? MySql 更改了 MySQL 8 中的默认身份验证协议,因此我建议使用较旧的 C 连接器(任何早于 8 的版本)。如果您想使用 MySQL 8 连接器,则需要以某种方式传递 default-auth=mysql_native_password。
使用 MySQL 8 C 连接器并连接到旧版本的 MySQL(参见 https://bugs.mysql.com/bug.php?id=90994)也存在同样的问题。
我正在尝试通过 mysql C 连接器连接到 memsql:
MYSQL *connection = mysql_init(NULL);
mysql_real_connect(connection, HOST, USER, NULL, DBNAME, 0, NULL, 0);
但我得到 "Error in server handshake"
。
从终端 (mysql -u root -h 127.0.0.1 -P 3306
) 连接工作正常。我尝试设置 root 密码,但没有任何变化。
我还将 SSL_MODE_DISABLED
添加到 mysql_options()
并确保为 memsql 禁用了 SSL。
可能是什么问题?
您使用的是哪个版本的 MySQL C 连接器? MySql 更改了 MySQL 8 中的默认身份验证协议,因此我建议使用较旧的 C 连接器(任何早于 8 的版本)。如果您想使用 MySQL 8 连接器,则需要以某种方式传递 default-auth=mysql_native_password。
使用 MySQL 8 C 连接器并连接到旧版本的 MySQL(参见 https://bugs.mysql.com/bug.php?id=90994)也存在同样的问题。