创建数据库
CREATE DATABASE 数据库名;
数据库名称不要使用奇怪的或者特殊的符号,例如空格、路径符、引号
指派数据库权限给用户
GRANT 权限 ON databasename.tablename TO '用户名'@'范围'
删除库
DROP DATABASE 数据仓库名;
切换数据库
USE 数据仓库名;
用户、数据库、表等等,这些元素的创建,一般不会有返回结果,仅有一个返回值,标明执行的结果是成功还是失败。
代码范例:
MYSQL* mysql = new MYSQL();
MYSQL* pDB = mysql_init(mysql);
if (pDB == NULL) {
std::cout << "mysql_init failed" << std::endl;
return -1;
}
pDB = mysql_real_connect(pDB, "localhost", "root", "root", "mysql", 3306, NULL, 0);
if (pDB) {
// 创建数据库
std::string sql = "CREATE DATABASE hello";
int ret = mysql_real_query(mysql, sql.c_str(), (unsigned long)sql.size());
if (ret != 0) {
std::cout << "mysql error: " << mysql_error(pDB) << std::endl;
return -1;
}
MYSQL_RES* res = mysql_use_result(mysql);
if (res) {
show_result(res);
mysql_free_result(res);
}
// 授予权限
sql = "GRANT ALL ON hello.* TO 'hello'@'localhost';";
ret = mysql_real_query(mysql, sql.c_str(), (unsigned long)sql.size());
if (ret != 0) {
std::cout << "mysql error: " << mysql_error(pDB) << std::endl;
return -1;
}
// 指定数据库
sql = "USE hello";
ret = mysql_real_query(mysql, sql.c_str(), (unsigned long)sql.size());
if (ret != 0) {
std::cout << "mysql error: " << mysql_error(pDB) << std::endl;
return -1;
}
res = mysql_use_result(mysql);
if (res) {
show_result(res);
mysql_free_result(res);
}
// 删除数据库
sql = "DROP DATABASE hello";
// ret = mysql_real_query(mysql, sql.c_str(), (unsigned long)sql.size());
if (ret != 0) {
std::cout << "mysql error: " << mysql_error(pDB) << std::endl;
return -1;
}
mysql_close(pDB);
std::cout << pDB << std::endl;
delete mysql;
}
mysql = nullptr;
return 0;
执行后,名为hello
的数据库被创建