2014-09-13 146 views
2

我有一個數據庫設置在我的1and1包中,我想在C++應用程序中連接到它。它在PHP中工作得很好。C++/MySQL - 通過主機地址訪問數據庫時'未知的MySQL服務器主機';沒有IP

的問題是,我沒有數據庫的實際IP,我所有的主機地址和登錄信息:

主機名: db12345678.db.1and1.com

用戶名: dbo12345678

密碼:輸入mypassword

我使用MySQL的C++連接器1.1.4。這裏是我的代碼用於測試目的:

#include <Windows.h> 
#include <cppconn/driver.h> 
#include <cppconn/exception.h> 
#include <cppconn/resultset.h> 
#include <cppconn/statement.h> 

#include <iostream> 

#pragma comment(lib,"mysqlcppconn.lib") 

int main(int argc,char *argv[]) 
{ 
    try { 
     sql::Driver *driver; 
     sql::Connection *con; 
     sql::Statement *stmt; 
     sql::ResultSet *res; 

     driver = get_driver_instance(); 
     con = driver->connect(sql::SQLString("db12345678.db.1and1.com"),sql::SQLString("dbo12345678"),sql::SQLString("mypassword")); 
     con->setSchema("test"); 
    } 
    catch(sql::SQLException &e) 
    { 
     std::cout<<"Exception: "<<e.what()<<std::endl; 
    } 
    while(true); 
    return 0; 
} 

使用的主機地址,我得到了以下的輸出:

Exception: Unknown MySQL server host 'db12345678.db.1and1.com' (0) 

我也試過「TCP://db12345678.db.1and1.com」 「tcp://db12345678.db.1and1.com:3306」,「db12345678.db.1and1.com:3306」,錯誤消息不同,但最終結果相同。

我試過ping主機,並通過traceroute來獲取IP,但這並不起作用。

我還能試試嗎?

+2

是你的數據庫的遠程訪問允許? – VMai 2014-09-13 14:03:39

+0

我可以通過PHP在不同的主機上訪問它,所以我假設它是。 – Silverlan 2014-09-13 14:17:37

+1

那麼使用你的PHP主機來獲取MySQL服務器的IP地址呢? – VMai 2014-09-13 14:27:06

回答

0

今天我跑了與MySQL的C++連接器一個奇怪的問題,即它不會接受我的主機..

這是我得到的東西的工作:

sql::ConnectOptionsMap connection_properties; 

try { 

    sql::Statement *stmt; 

    connection_properties ["hostName"] = std::string("host.com");  
    connection_properties ["userName"] = std::string("dbuser"); 
    connection_properties ["password"] = std::string("dbpass"); 
    connection_properties ["schema"] = std::string("dbname"); 
    connection_properties ["OPT_RECONNECT"] = true; 


    /* Create a connection */ 
    driver = get_driver_instance(); 
    con = driver->connect(connection_properties); 

} catch (sql::SQLException &e) { 
    std::cout << "# ERR: SQLException in " << __FILE__; 
    std::cout << "# ERR: " << e.what(); 
    std::cout << " (MySQL error code: " << e.getErrorCode(); 
    std::cout << ", SQLState: " << e.getSQLState() << ")" << std::endl; 
} 
相關問題