#include <mysql.h>
#include <stdio.h>
#include <stdlib.h>

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

	MYSQL *mysql;
	const char *host;
	unsigned int port;
	const char *user;
	const char *passwd;

	if (argc != 5) {
		printf("Usage: %s host port user passwd\n", argv[0]);
		return 1;
	}

	host = argv[1];
	port = atoi(argv[2]);
	user = argv[3];
	passwd = argv[4];

	mysql_thread_init();

	if (mysql_library_init(-1, NULL, NULL) != 0) {
		printf("mysql_library_init failed");
		return 1;
	}

	mysql = mysql_init(NULL);
	if (!mysql) {
		printf("mysql_init failed");
		return 1;
	}

	if (mysql_options(mysql, MYSQL_OPT_USE_REMOTE_CONNECTION, NULL) != 0) {
		printf("mysql_options MYSQL_OPT_USE_REMOTE_CONNECTION failed: %s\n", mysql_error(mysql));
		return 1;
	}

	if (mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "utf8mb4") != 0) {
		printf("mysql_options MYSQL_SET_CHARSET_NAME utf8mb4 failed: %s\n", mysql_error(mysql));
		return 1;
	}

	if (!mysql_real_connect(mysql, host, user, passwd, NULL, port, NULL, CLIENT_FOUND_ROWS | CLIENT_MULTI_RESULTS | CLIENT_REMEMBER_OPTIONS)) {
		printf("mysql_real_connect failed: %s\n", mysql_error(mysql));
		return 1;
	}

	mysql_close(mysql);
	mysql_library_end();

	return 0;

}
