mysql linux c apiおよび使用ノート
4976 ワード
よく使われるlinux C API
MYSQL *conn = mysql_init(void); // mysql, mysql
//iferr(!conn)
conn = mysql_real_connect(conn, "localhost" IP, , , database,0, NULL, 0);
//iferr (!conn)
int res = mysql_real_quary(conn, (char *)cmd, len); // mysql ,@cmd mysql , mysql ,@len @cmd
//iferr (res)
//
char value = 1;
mysql_options(conn, MYSQL_OPT_RECONNECT, &value);
MYSQL_RES *res = mysql_store_result(conn); //
//iferr(!res)
r = mysql_num_rows(res); //
c = mysql_num_fields(res); // ( )
while ((r = mysql_fetch_field(res))) //
{
//r[0]、r[1]... 、 ...
//do somthing...
}
mysql_free_result(res); //
mysql_close(conn); //
mysql_error(conn); //
mysql_errno(conn); //
// mysql ,
mysql_library_init(0, NULL, NULL); // mysql ( )
mysql_library_end(); //
mysql_thread_init(); //
mysql_thread_end(); //
マルチスレッド関連ルーチン
void *thread(void *arg)
{
mysql_thread_init(); //
MYSQL *conn = mysql_init();
//iferr(!conn)
conn = mysql_real_connect(conn, "localhost", "user", "passwd", "database", 0, NULL, 0);
//iferr(!conn)
//do somthing...
mysql_close(conn);
mysql_thread_end(); // ,
}
int main()
{
// mysql
if (mysql_library_init(0, NULL, NULL))
{
//err
}
//do somthing...
pthread_t t;
pthread_create(&t, NULL, thread, NULL);
//do somthing...
mysql_library_end(); //
return 0;
}
常用mysql文
あった問題
mysqlサービスの起動エラー
エラー:Failed to start mysql.service: Unit mysql.Serviceis maskedコマンドライン実行文:systemctl unmask mysql.サービスでOK
インポートファイルエラー
mysqlコマンドラインで実行:show variables like'%secure_file_priv%’は値を表示し、値が1つのパスであれば、インポートされたファイルはそのパスの下でインポートする必要があります.パスを変更したり、値がNULLであれば、以下の変更が必要です.
/etc/myを追加します.cnfファイル
[mysqld]
secure_file_prev=
指定したインポートファイルのパスは、等号の後に書くことができます.上記のように指定しない場合は、インポートファイルは任意のパスで書くことができます.
現在はこれだけしか使っていないので、触れていないものは不定期に更新する機会があります