MCPcopy Create free account
hub / github.com/acl-dev/acl / db_create

Function db_create

lib_acl_cpp/samples/db/mysql_pool/main.cpp:21–71  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19 ")";
20
21static bool db_create(const char* dbaddr, const char* dbname,
22 const char* dbuser, const char* dbpass)
23{
24 acl::db_mysql db(dbaddr, "mysql", dbuser, dbpass);
25 if (db.open() == false)
26 {
27 printf("open %s@mysql error, dbuser: %s, dbpass: %s\r\n",
28 dbaddr, dbuser, dbpass);
29 return false;
30 }
31
32 printf("mysqlclient lib's version: %ld, info: %s\r\n",
33 db.mysql_libversion(), db.mysql_client_info());
34
35 acl::string sql;
36 sql.format("use mysql");
37 if (db.sql_update(sql.c_str()) == false)
38 {
39 printf("'%s' error: %s\r\n", sql.c_str(), db.get_error());
40 return false;
41 }
42 db.free_result();
43
44 sql.format("create database %s character set utf8;\r\n", dbname);
45 if (db.sql_update(sql.c_str()) == false)
46 {
47 printf("'%s' error: %s\r\n", sql.c_str(), db.get_error());
48 return false;
49 }
50 db.free_result();
51
52 sql.format("grant CREATE,DROP,INSERT,DELETE,UPDATE,SELECT on %s.* to %s",
53 dbname, dbuser);
54 if (db.sql_update(sql.c_str()) == false)
55 {
56 printf("'%s' error: %s\r\n", sql.c_str(), db.get_error());
57 return false;
58 }
59 db.free_result();
60
61 sql = "flush privileges";
62 if (db.sql_update(sql.c_str()) == false)
63 {
64 printf("'%s' error: %s\r\n", sql.c_str(), db.get_error());
65 return false;
66 }
67 db.free_result();
68
69 printf("create db(%s) ok\r\n", dbname);
70 return true;
71}
72
73static bool tbl_create(const char* dbaddr, const char* dbname,
74 const char* dbuser, const char* dbpass)

Callers 4

mainFunction · 0.70
dict_db_openFunction · 0.50
sql_selectMethod · 0.50
sql_updateMethod · 0.50

Calls 8

mysql_libversionMethod · 0.80
mysql_client_infoMethod · 0.80
free_resultMethod · 0.80
openMethod · 0.45
formatMethod · 0.45
sql_updateMethod · 0.45
c_strMethod · 0.45
get_errorMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…