当前位置: 首页 > news >正文

mysql-tpcc-mysql压测工具使用

在Linux系统上安装和配置tpcc-mysql进行MySQL的TPC-C基准测试,通常涉及以下几个步骤。请注意,由于tpcc-mysql不是一个官方工具,它可能需要从第三方仓库获取,如Percona提供的版本。

前置条件

  1. 确保MySQL或MariaDB已安装:在开始之前,请确保你的系统中已经安装了MySQL或者MariaDB数据库,并且正在运行。
    在编译之前需要安装mysql和mysql编译时链接的库
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev

安装tpcc-mysql

  1. 克隆仓库

    可以从Percona的GitHub仓库获取tpcc-mysql源码。

    git clone https://github.com/percona/tpcc-mysql.git
    cd tpcc-mysql/src
    
  2. 编译源码

    tpcc-mysql目录下执行以下命令来编译源码。

    make
    

tpcc-mysql包含所需要的sql脚本文件
在这里插入图片描述

  1. 创建TPC-C表并加载数据

    使用tpcc-mysql提供的脚本创建必要的数据库、用户以及导入测试数据。

    # 创建数据库(例如:tpcc)
    mysql -e "CREATE DATABASE tpcc;"# 加载schema
    mysql tpcc < create_table.sql# 创建外键
    mysql tpcc < add_fkey_idx.sql# 加载初始数据,-w 参数指定仓库数量,默认为1,根据机器性能调整
    ./tpcc_load localhost -d tpcc user password -w 1000
    
  2. 运行测试

    使用如下命令开始测试,其中参数可以根据实际情况调整。
    语法:

    ./tpcc_start -h[host] -d[database] -u[user] -p[password] -w[warehouses] -c[connections] -r[warmup_time] -l[running_time]
    

    示例

    ./tpcc_start -hlocalhost -dtpcc1000 -uroot -pyour_password -w1000 -c64 -r30 -l120
    

参数说明:

  • -w1000:使用 1000 个仓库

  • -c64:并发连接数为 64

  • -r30:预热阶段 30 秒

  • -l120:测试运行 120 秒

运行完成后会输出 TPS(每秒事务数)、RT(响应时间)等指标。

常见问题

Q1: 报错 can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’
A: 修改代码中连接方式为 TCP 而不是 socket。修改 tpcc.c 文件中的连接部分,添加:

my_data->sock = mysql_init(NULL);
mysql_real_connect(my_data->sock, "127.0.0.1", user, password, schema, 3306, NULL, 0);

你遇到的错误是:

1698, 28000, Access denied for user 'root'@'localhost'

❗问题原因

这个错误表示:

MySQL 拒绝了用户 root@localhost 的登录请求

这通常是因为 MySQL 的 root 用户使用了插件认证方式(如 auth_socketunix_socket),而不是传统的密码认证。这意味着即使你知道 root 用户“应该”有密码,也不能通过 -p 参数进行登录。


✅ 解决方法一:修改 root 用户的认证方式(推荐)

你可以让 root 用户使用标准的密码认证方式登录:

步骤 1:用免密方式登录 MySQL

mysql -u root

如果你能成功进入 MySQL 命令行,说明你是通过 socket 插件登录的。

步骤 2:修改 root 用户的认证方式并设置密码

执行以下 SQL 命令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
FLUSH PRIVILEGES;

'your_password' 替换为你想设置的密码。

步骤 3:退出 MySQL

exit;
http://www.xdnf.cn/news/652681.html

相关文章:

  • 【Java工程师面试全攻略】Day2:Java集合框架面试全解析
  • 榕壹云物品回收系统实战案例:基于ThinkPHP+MySQL+UniApp的二手物品回收小程序开发与优化
  • 【运维】OpenWrt DNS重绑定保护配置指南:解决内网域名解析问题
  • 项目亮点 封装request请求模块
  • 2025年- H51-Lc159 --199. 二叉树的右视图(层序遍历,队列)--Java版
  • AI学习笔记二十八:使用ESP32 CAM和YOLOV5实现目标检测
  • 使用docker容器部署Elasticsearch和Kibana
  • Rk3568 Andorid 11 ,根据prop属性的值控制是否禁止u盘连接
  • 倚光科技在二元衍射面加工技术上的革新:引领光学元件制造新方向​
  • 拓扑光子混沌算法
  • 开源第三方库发展现状
  • 《软件工程》第 9 章 - 软件详细设计
  • Ini配置文件读写,增加备注功能
  • VR 技术在农业领域或许是一抹新曙光​
  • Java Class 文件编码机制全解析
  • 分布式锁与锁续期
  • 轻量级视觉语言模型 Dolphin:高效精准的文档结构化解析利器
  • 电机控制学习笔记
  • 深入解析Spring Boot与Spring Security整合实现JWT认证
  • ADS学习笔记(四) S参数仿真
  • 网络编程1
  • SAP ERP 系统拆分的七大挑战
  • WIN--文件读写
  • Linux的top命令使用
  • 在前端项目中实现打包后可配置地址(如 API 域名、静态资源路径等)
  • 告别复杂操作!链抽象如何让 Web3 用户体验媲美 Web2?
  • Element UI 对话框固定宽度 + 遮罩层深度定制方案
  • 零基础设计模式——结构型模式 - 适配器模式
  • 基于 docker 部署 k8s 集群
  • 机器学习中的线性回归:从理论到实践的深度解析