使用mysql C连接器连接到memsql时出错

时间:2018-08-08 02:51:36

标签: mysql mysql-connector memsql

我正在尝试通过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。

可能是什么问题?

1 个答案:

答案 0 :(得分:2)

您使用哪个版本的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)时,存在相同的问题。