我已经将MySql配置为使用SSL,它在PHP中运行良好.但是,当我尝试使用C/C++程序连接到数据库时,它不起作用.
host = "localhost"
psw = "pass"
db = "database"
Run Code Online (Sandbox Code Playgroud)
usr = "userNOSSL"
conn = mysql_init(NULL);
mysql_real_connect(conn, host, usr, psw, db, 0, NULL, 0);
Run Code Online (Sandbox Code Playgroud)
这个效果很好.我可以轻松地检索数据:
query = "SELECT x FROM y"
mysql_query(conn, query);
result = mysql_store_result(conn);
num_fields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result)))
{
for(i = 0; i < num_fields; i++)
{
printf("%s ", row[i] ? row[i] : "NULL");
}
printf("\n");
}
mysql_free_result(result);
Run Code Online (Sandbox Code Playgroud)
usr = "userSSL"
conn = mysql_init(NULL);
mysql_real_connect(conn, host, usr, psw, db, 0, NULL, CLIENT_SSL);
Run Code Online (Sandbox Code Playgroud)
错误
错误:我的"MYSQL*conn;" 对象没有得到像"没有ssl"这样的参数.所以,它发生了一个例外:
A first chance of exception at 0x0f18c274 in test_Class.exe : 0xC0000005:
Acces violation when reading on location 0x00000048.
An unhandled exception at 0x0f18c274 in test_Class.exe : 0xC0000005:
Acces violation when reading on location 0x00000048.
Run Code Online (Sandbox Code Playgroud)
在这一行:
num_fields = mysql_num_fields(result);
Run Code Online (Sandbox Code Playgroud)
如果我这样做同样的错误:
mysql_ssl_set(.SOMEOPTIONTHERE.)
mysql_real_connect(conn, host, usr, psw, db, 0, NULL, 0);
Run Code Online (Sandbox Code Playgroud)
提前致谢.