MySQL数据库访问全攻略:从C/C++编程到图形化工具
·
1. 准备工作:MySQL客户端库引入
在开始使用C/C++访问MySQL数据库前,我们需要做好两项准备:
- 创建专用数据库账号
- 安装必要的开发库
首先创建一个本地访问账号:
CREATE USER 'connector'@'localhost' IDENTIFIED BY 'your_password';
然后为该账号授权:
GRANT ALL ON your_database.* TO 'connector'@'localhost';

安装开发库有两种方式:
- 从MySQL官网下载对应平台的开发包
- 通过yum直接安装(推荐)
yum install -y mysql-community-server
# 安装开发头文件
yum install -y mysql-devel
2. C/C++连接MySQL基础流程
连接MySQL的基本流程分为三步:
- 初始化MySQL对象
- 建立数据库连接
- 使用完毕后关闭连接
#include <mysql/mysql.h>
int main() {
// 1. 初始化
MYSQL* conn = mysql_init(nullptr);
// 2. 连接数据库
if(!mysql_real_connect(conn, "localhost", "connector",
"your_password", "your_database",
3306, nullptr, 0)) {
// 错误处理
}
// 3. 关闭连接
mysql_close(conn);
return 0;
}

3. 执行SQL语句的实践技巧
增删改操作
使用mysql_query()函数执行SQL语句:
string sql = "INSERT INTO user (name,age) VALUES ('Tom',20)";
int ret = mysql_query(conn, sql.c_str());
if(ret == 0) {
cout << "执行成功" << endl;
}

查询操作
查询操作相对复杂,需要处理结果集:
MYSQL_RES* result = mysql_store_result(conn);
if(result) {
// 获取行列数
int rows = mysql_num_rows(result);
int cols = mysql_num_fields(result);
// 获取列名
MYSQL_FIELD* fields = mysql_fetch_fields(result);
// 遍历结果
while(MYSQL_ROW row = mysql_fetch_row(result)) {
for(int i=0; i<cols; i++) {
cout << row[i] << "\t";
}
cout << endl;
}
// 释放结果集
mysql_free_result(result);
}

4. 中文乱码解决方案
当遇到中文乱码问题时,需要在连接后设置字符集:
mysql_set_character_set(conn, "utf8");
这样就能正确处理中文数据了。

5. 图形化工具MySQL Workbench
5.1 安装与配置
- 从MySQL官网下载对应版本的Workbench
- 创建远程访问账号:
CREATE USER 'workbench'@'%' IDENTIFIED BY 'password';
GRANT ALL ON database.* TO 'workbench'@'%';
5.2 连接数据库
在Workbench中添加新连接,填写: - 连接名称 - 主机地址 - 端口 - 用户名 - 密码

5.3 基本使用
- 执行SQL:编写SQL后点击闪电图标
- 可视化操作:直接编辑表格数据
- 导出SQL:可将操作保存为.sql文件

通过以上方法,你可以灵活选择适合的MySQL访问方式,无论是编程访问还是使用图形化工具都能得心应手。
更多推荐


所有评论(0)