linuxはc言語プログラミングでリモートmysqlにアクセス


まずリモートmysqlアクセス許可をオンにします
mysql -u root -p
mysql>use mysql;
mysql>select 'host' from user where user='root';
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host'   from user where user='root';
mysqlの公式サイトにConnector/C(libmysql)A client library for C developmentをダウンロードします.
ダウンロードしたファイルを解凍する
tar xvzf mysql-connector-c-6.0.2-linux-glibc2.3-x86-32bit.tar.gz
解凍したincludeフォルダのファイルを/usr/include/mysqlフォルダにコピー
mkdir/usr/include/mysql
cp -rf include/*/usr/include/mysql
解凍したlibフォルダのファイルを/usr/libフォルダの下に置く
cp lib/*/usr/lib/
テストプログラムの作成
#include <stdio.h>
#include <stdlib.h>
#include "mysql/mysql.h"  

int main(void)
{
    const char *host = "59.71.72.133";
    const char *user = "root";
    const char *pass = "";
    const char *db   = "mysql";
    /*   mysql   */
    MYSQL mysql;
    MYSQL_RES *rs;
    MYSQL_ROW row;
    mysql_init(&mysql); /*     */
    /*       */
    if (!mysql_real_connect(&mysql, host, user, pass, db, 0, NULL, 0))
    {
        printf("       : %s
", mysql_error(&mysql)); } else { printf(" !
"); } char *sql = "select host,user from user order by rand()"; if (mysql_query(&mysql, sql)!=0) { /* */ printf( "%s", mysql_errno(&mysql), mysql_error(&mysql)); } rs = mysql_store_result(&mysql); /* */ while ((row = mysql_fetch_row(rs))) { /* */ printf( "%s---%s", row[0], row[1]); } mysql_free_result(rs); /* */ mysql_close(&mysql); /* */ return 1; }

このCソースファイルをGCCでコンパイルするには、以下のコマンドを使用します.
gcc -o mysqltest -g mysqltest.c -lmysqlclient
./mysqltest