3

これは私が実行しようとしているコードです。それはうまくコンパイルされ、昨日までうまく機能しました。

#include <my_global.h>
#include <mysql.h>

int main(int argc, char **argv)
{

  MYSQL *conn;
  MYSQL_RES *result;
  MYSQL_ROW row;
  int num_fields;
  int i;

  conn = mysql_init(NULL);
  mysql_real_connect(conn, "hostname", "username", "password", "database_name", 0, NULL, 0);

  mysql_query(conn, "SELECT * FROM tabletest");
  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);
  mysql_close(conn);

}

のパラメータはmysql_real_connect()プライバシーのためにここでは一般的ですが、私が言ったように、それは昨日機能したことに注意してください。正常にコンパイルした後にコードを実行しようとすると、次のようになります。

Segmentation fault (core dumped)
4

1 に答える 1

4

パディは重要な問題を指摘しました。私はエラーチェックをしませんでした。エラー チェックの結果、リモート サーバーへのアクセスが許可されておらず、

Error 1045: Access denied for user 'username'@'ip' (using password: YES)

その後、電源を入れた後、コンピューターの IP アドレスが変更されたことに気付きました。私はこれが起こったことを知りませんでした。そのため、cPanel に戻り、「新しい」IP アドレスを MySQL のリモート アクセス リストに追加する必要がありました。ここでの問題は、IP アドレスを静的に保つ方法を見つけることです。

この話の教訓は、常にエラーを処理することです。

于 2012-10-17T01:31:04.073 に答える