1.首先鏈接MySQL默認的數據庫mysqlmysql
// 參數說明: // strIP: MySQL數據庫的IP地址 // nPort: MySQL數據庫的端口號 // strDBName: 要鏈接的數據庫(mysql) // strUserName: 鏈接MySQL數據庫的用戶名 // strPassword: 鏈接MySQL數據庫的密碼 bool Connect( const std::string& strIP, int nPort, const std::string& strDBName, const std::string& strUserName, const std::string& strPassword ) { if ( nullptr == (m_hMysql = mysql_init(nullptr)) ) { printf("mysql_init() failed!"); return false; } if( nullptr == mysql_real_connect( m_hMysql, strIP.c_str(), strUserName.c_str(), strPassword.c_str(), strDBName.c_str(), nPort, nullptr, 0) ) { printf("mysql_real_connect() failed!"); return false; } return true; }
調用示例:sql
bool ret = Connect("127.0.0.1", 3306, "mysql", "test", "test"); // 注意:"mysql"是MySQL本身的數據庫 if (!ret) { printf("connect mysql failed\n"); }
2.建立本身的數據庫test數據庫
bool CreateDatabase(const std::string& strSQL) { if (nullptr == m_hMysql || strSQL.empty()) { return false; } if (MYSQL_OK != mysql_query(m_hMysql, strSQL.c_str())) { printf("mysql_query failed, sql:%s\n", strSQL.c_str()); return false; } return true; }
調用示例:spa
bool ret = CreateDatabase("CREATE DATABASE IF NOT EXISTS test DEFAULT CHARSET utf8 COLLATE utf8_general_ci"); if (!ret) { printf("CreateDatabase failed\n"); }
3.切換到本身的數據庫testcode
bool ChangeDatabase(const std::string& strSQL) { if (nullptr == m_hMysql || strSQL.empty()) { return false; } if (MYSQL_OK != mysql_query(m_hMysql, strSQL.c_str())) { printf("mysql_query failed, sql:%s\n", strSQL.c_str()); return false; } return true; }
調用示例:blog
bool ret = ChangeDatabase("USE test"); if (!ret) { printf("ChangeDatabase failed\n"); }
4.建立數據庫表t_dataci
bool CreateTable(const std::string& strSQL) { if (nullptr == m_hMysql || strSQL.empty()) { return false; } if (MYSQL_OK != mysql_query(m_hMysql, strSQL.c_str())) { printf("mysql_query failed, sql:%s\n", strSQL.c_str()); return false; } return true; }
調用示例:string
bool ret = CreateTable("CREATE TABLE IF NOT EXISTS t_data ( Id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '自增ID', DATA VARCHAR(256) NOT NULL COMMENT '數據位置', PRIMARY KEY (Id) ) ENGINE=INNODB DEFAULT CHARSET=utf8"); if (!ret) { printf("create table failed\n"); }