SSL を使用するように MySql を構成しましたが、PHP でうまく機能しました。しかし、C/C++ プログラムでデータベースに接続しようとすると、うまくいきません。
変数:
host = "localhost"
psw = "pass"
db = "database"
SSL なし:
usr = "userNOSSL"
conn = mysql_init(NULL);
mysql_real_connect(conn, host, usr, psw, db, 0, NULL, 0);
これはうまくいきました。私は簡単にデータを取得できます:
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);
SSL あり (CLIENT_SSL タグ) :
usr = "userSSL"
conn = mysql_init(NULL);
mysql_real_connect(conn, host, usr, psw, db, 0, NULL, CLIENT_SSL);
エラー
エラー: "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.
この行で:
num_fields = mysql_num_fields(result);
私が行う場合、同じエラー:
mysql_ssl_set(.SOMEOPTIONTHERE.)
mysql_real_connect(conn, host, usr, psw, db, 0, NULL, 0);
前もって感謝します。