看到 這一幕··我終於感動了·····c 連線mysql 成功

wermnb發表於2010-01-29

為了寫oj ,必須要連上資料庫,又因為評判我是在linux系統上開發的 ,

資料庫又在 windows 上··所以開始了 linux 連 windows遠端資料庫 的 艱難歷程·

 

首先,我得知道 資料庫怎麼連  google 之  幸有所得:

 

 #include <stdio.h>
 #include <mysql.h>
 

 int main() {
  MYSQL *conn;
  MYSQL_RES *res;
  MYSQL_ROW row;


  char *server = "localhost";
  char *user = "root";
  char *password = ""; /* 此處改成你的密碼 */
  char *database = "mysql";

 
  conn = mysql_init(NULL);


  /* Connect to database */
  if (!mysql_real_connect(conn, server,
  user, password, database, 0, NULL, 0)) {
  fprintf(stderr, "%s/n", mysql_error(conn));
  exit(1);
  }


  /* send SQL query */
  if (mysql_query(conn, "show tables")) {
  fprintf(stderr, "%s/n", mysql_error(conn));
  exit(1);
  }


  res = mysql_use_result(conn);


  /* output table name */

      printf("MySQL Tables in mysql database:/n");
  while ((row = mysql_fetch_row(res)) != NULL)
  printf("%s /n", row[0]);


  /* close connection */
  mysql_free_result(res);
  mysql_close(conn);

      return 0;
}

 

 

然後編譯···oh ! myGOD   很多錯,

具體一看  找不到標頭檔案 ·GOOGLE ····

原來需要 一個 rpm 包 MySQL-devel-standard-5.0.9-0.rhel4.i386.rpm

索性 把 mysql  也裝上  共 3個包

MySQL-server-standard-5.0.21-1.rhel4.i386.rpm (Server 資料庫) 
MySQL-client-standard-5.0.21-1.rhel4.i386.rpm (Client 客戶端)

MySQL-devel-standard-5.0.21-1.rhel4.i386.rpm (Headers and libraries 開發包)

下之···安裝

 

再編譯 不行··找不到庫 GOOGLE····

 

結果··必須 如下 OK

#gcc -g dbc.c -o dbc $(mysql_config --libs) $(mysql_config --cflags)

 

編譯 終於 好了

 

再是連線資料庫···連線失敗···再GOOGLE

 

原來有可能 防火牆問題 ,而且需要server 給 遠端客戶端 賦權

 

於是 grant all privileges on judgeonline.* to root@192.168.*.* IDENTIFIED by 'root';

 

等待 幾秒後 ,終於  成功···

 

(本想 發圖的 ,發現 不能 發圖 失望啊····)

 

 

 

 

 

相關文章