打印

無法登入遊戲,資料庫資料進不去

無法登入遊戲,資料庫資料進不去

你好,我是用 ubuntu 架設,卡在saac登入時,跳出與服務器切斷連線

gmsv有提示帳號登入,但登入是失敗的

saac提示資料庫查找失敗後,就重新連接資料庫

請問這個問題的癥結點是哪裡 ?



[ 本帖最後由 tony50314 於 2015-5-18 16:24 編輯 ]

TOP

使用的是 Yang SA8.0 服務端(Linux版)[2012.09.04] 內附的 SQL表.sql

目前嘗試的辦法
換成 Yang SA8.0 服務端(Linux版)[2010.07.22] 的SQL一樣,比對後覺得在登入方面,兩個資料庫是類似的
直接在資料庫先創造一組資料,只輸入name/password,一樣查找資料庫失敗

嘗試更改資料庫名稱並對應acserv.cf內容,排除資料庫名稱輸入錯誤的問題
>改為cs,資料庫連接失敗,這邊正常
>先修改SQL內表單名稱為sasql,並修改acserv.cf內容,資料庫連接成功
但一樣無法登入,出現本文一樣的情形

嘗試更改權限用戶帳號密碼,類似上述步驟,排除輸入錯誤的問題
並使用root帳號密碼,問題一樣存在

關閉後台功能,無效
開關自動註冊功能,無效
數據庫地址於127.0.0.1與localhost間切換,無效

客戶端更換為 Yang 提供的華裔官方客戶端,並更改對應啟動參數,無效
sa_8002a.exe updated windowmode nopatch nodelay realbin:158 adrnbin:158 sprbin:137 spradrnbin:137 realtrue:13 adrntrue:5

查詢6.0源碼,遭遇的問題應與這一段判斷句相關
這是哪裡出了問題呢 ?
複製內容到剪貼板
代碼:
int sasql_query(char *nm, char *pas){
        char sqlstr[256];
        sprintf(sqlstr,"select * from %s where %s=BINARY'%s'",config.sql_Table,config.sql_NAME,nm);
       
        if(!mysql_query(&mysql,sqlstr)){
          int num_row=0;
          mysql_result=mysql_store_result(&mysql);
          num_row=mysql_num_rows(mysql_result);
                mysql_free_result(mysql_result);
          if(num_row>0){
                  mysql_row=mysql_fetch_row(mysql_result);
                  if(strcmp(pas,mysql_row[1]) == 0){
                          return 1;
                  }else{
                          printf("用戶%s密碼錯誤!\n",nm);
                          return 2;
                  }
          }else{
                  printf("用戶%s未註冊!\n",nm);
                  return 3;
          }
        }else{
                printf("\n數據庫查找失敗!\n");
                printf("重新連接數據庫...");
                sasql_close();
                sasql_init();
                printf("完成\n");
                return 0;
        }
}
[ 本帖最後由 tony50314 於 2015-5-18 17:19 編輯 ]

TOP

我再另一篇有回你的問題
我猜妳是用Win版本開服,Linux版本可以直接看到錯誤的點

先利用cmd開啟gmsv跟saac,看一下到底錯誤是甚麼
再討論討論

TOP

謝謝你回答我
我是安裝LAMPP的套件
或許就是差在這裡

現在用RedHat開魔力寶貝
我想這一個虛擬機也能開石器時代
但沒有測試了

真的感謝你的回文 ^^

TOP