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/
テストプログラムの作成
このCソースファイルをGCCでコンパイルするには、以下のコマンドを使用します.
gcc -o mysqltest -g mysqltest.c -lmysqlclient
./mysqltest
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