こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VC++でMySQLがインストールされたサーバーに接続できない

VC++2005のWin32コンソールアプリケーションにて、
MySQLがインストールされたサーバーにアクセスするアプリを作成しています。

実行したところ、「Host '自分のコンピュータ名' is not allowed to connect to this MySQL server」
というエラーメッセージが表示され、サーバーにアクセスすることが出来ません。
サーバー側のMySQLを停止させて実行すると、異なるメッセージが表示されるので、
サーバー側のMySQLの設定が原因かと考えているのですが、解決策が分かりません。。

解決策をご存知の方おられましたら、ご教授お願い致します。
下記にソースコードを掲載します。

============================================================================================================
#include "stdafx.h"
#include <windows.h>
#include <mysql.h>
#include <iostream>

int _tmain(int argc, _TCHAR* argv[])
{
MYSQL * con;
MYSQL_RES * res;
MYSQL_ROW row;

char server[] = "サーバー側のIPアドレスを設定";//サーバーのIPアドレスを指定しています

char user[] = "root";
char password[] = "hoge";//サーバー側のMySQLのパスワードを入れる
char database[]= "test";//データベース名を入れる

//初期化
con = mysql_init(NULL);

//MySQLに接続
if(!mysql_real_connect(con, server, user, password, database, 0, NULL, 0)){
fprintf(stderr, "%s\n", mysql_error(con));
exit(1);
}

//SQL文で問い合わせる
if(mysql_query(con, "select * from test")){
fprintf(stderr, "%s\n", mysql_error(con));
exit(1);
}

//結果を得る
res = mysql_use_result(con);

//データを表示する
while((row = mysql_fetch_row(res)) != NULL){
std::cout << row[0] << " " << row[1] << std::endl;
}

//接続を閉じる
mysql_free_result(res);
mysql_close(con);

return 0;
}
============================================================================================================

投稿日時 - 2009-03-19 17:53:41

QNo.4810242

困ってます

質問者が選んだベストアンサー

エラーメッセージ「Host '自分のコンピュータ名' is not allowed to connect to this MySQL server」は、接続先のデータベースサーバに、“mysql_real_connect”で指定したユーザが「userテーブル」に登録されていないことが考えられます。

詳しい対処方法の参照先を下記参考URLに貼り付けました。リンク先を開き、縦スクロールバーを中央程に移動するか、上記エラーメッセージで検索すると、同様のエラーメッセージと対処方法を見つけることができます。

参考URL:http://dev.mysql.com/doc/refman/4.1/ja/access-denied.html

投稿日時 - 2009-03-22 18:51:04

お礼

参照サイトを参考にし、さらに自分で少し調べた結果、
mysql> GRANT ALL PRIVILEGES ON データベース名.*
mysql> TO 'ホスト名'
mysql> IDENTIFIED BY 'パスワード';
にてサーバーに接続することが出来ました!
ご回答ありがとうございました。

投稿日時 - 2009-03-23 11:07:16

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問