千家信息网

Percona Toolkit 安装

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,Percona Toolkit(pt工具)是一组用于维护数据库的命令行工具, 大部分是Perl脚本, 其连接数据库, 需要DBI和DBD::mysql的支持.直接使用yum安装这两个软件包就行.# y
千家信息网最后更新 2025年02月01日Percona Toolkit 安装

Percona Toolkit(pt工具)是一组用于维护数据库的命令行工具, 大部分是Perl脚本, 其连接数据库, 需要DBIDBD::mysql的支持.

直接使用yum安装这两个软件包就行.

# yum install perl-DBI perl-DBD-MySQL

安装pt工具的依赖后, 就是安装pt本身了(percona-toolkit-3.0.3_x86_64.tar.gz), 这里指定其安装的目录.

# perl Makefile.PLPREFIX=/usr/local/percona-toolkit

# make

# make install

设置环境变量PATH, 执行该命令行, 若能得到数据库用户的授权信息, 说明安装正常.

$ pt-show-grants --host=localhost--password=123456 --port=3316 --user=root

上面的命令行, 访问数据库的过程如下所示:

pt-show-grants -> DBI -> DBD::MySQL-> MySQL client library -> MySQL Database

上述过程所用的MySQL client library具体是什么样子呢, 其间并没手动做过设置.

$ ldconfig --print-cache | grep'libmysqlclient.so'

libmysqlclient.so.16(libc6,x86-64) => /usr/lib64/mysql/libmysqlclient.so.16

该库文件libmysqlclient.so是由哪个软件包安装的, 查找如下:

$ rpm -qf/usr/lib64/mysql/libmysqlclient.so.16

mysql-libs-5.1.73-8.el6_8.x86_64

mysql-libs主要安装了哪些文件呢, 有两部分: 一部分是连接MySQL数据库用到的客户端库文件,另一是文件mysql-x86_64.conf, 里面写明了库文件的路径/usr/lib64/mysql, 执行ldconfig, 操作系统加载的就是该路径下的文件.

$ rpm -ql mysql-libs-5.1.73-8.el6_8.x86_64

/etc/ld.so.conf.d/mysql-x86_64.conf

/etc/my.cnf

/usr/lib64/mysql

/usr/lib64/mysql/libmysqlclient.so.16

/usr/lib64/mysql/libmysqlclient.so.16.0.0

/usr/lib64/mysql/libmysqlclient_r.so.16

/usr/lib64/mysql/libmysqlclient_r.so.16.0.0

细心的话, 会发现前面安装perl-DBD-MySQL, 其依赖于mysql-libs, yum会先安装mysql-libs.

至此对pt工具如何访问数据库, 使用什么样的MySQL client library, 以及其来自哪个软件包等, 有了大概的了解.

若想让pt工具使用目前MySQL软件自带的客户端库文件, 即目录/opt/mysql/lib下的库文件(MySQL安装路径是/opt/mysql), 不再使用mysql-libs提供的, 该如何做呢

1. 卸载软件包mysql-libs

# rpm -e mysql-libs-5.1.73-8.el6_8.x86_64--nodeps

2. 编辑文件/etc/ld.so.conf.d/mysql.conf,写入新路径/opt/mysql/lib, 然后ldconfig, 查看新的库文件是否生效.

# ldconfig

# ldconfig --print-cache | grep 'libmysqlclient.so'

libmysqlclient.so.18(libc6,x86-64) => /opt/mysql/lib/libmysqlclient.so.18

使用命令行pt-show-grants测试, 报错如下:

$ pt-show-grants--host=localhost --password=123456 --port=3316 --user=root

install_driver(mysql) failed: Attempt toreload DBD/mysql.pm aborted.

Compilation failed in require at (eval 5)line 3.

at/usr/local/percona-toolkit/bin/pt-show-grants line 1367

3. 为什么呢, 可能是perl-DBD-MySQLMySQL clientlibrary不匹配, 下面尝试这样, 卸载DBIDBD::mysql, 源码安装两者最的新版本.

3.1 卸载perl-DBIperl-DBD-MySQL.

# yum remove perl-DBI perl-DBD-MySQL

3.2 下载最新的DBIDBD::mysql源码包, 编译安装.

下载链接, https://dev.mysql.com/downloads/dbi.html

先安装DBI, 按步骤perl Makefile.PL, make make, install就可, DBD::mysql.

在安装DBD::mysql遇到一个问题, 先下载DBD::mysql相应的依赖包, 安装即可.

# perl Makefile.PL

Can't locate Devel/CheckLib.pm in @INC …

# rpm -ivhftp://fr2.rpmfind.net/linux/epel/6/x86_64/perl-Devel-CheckLib-0.98-1.el6.noarch.rpm

Retrievingftp://fr2.rpmfind.net/linux/epel/6/x86_64/perl-Devel-CheckLib-0.98-1.el6.noarch.rpm

warning: /var/tmp/rpm-tmp.uqBd6F: Header V3RSA/SHA256 Signature, key ID 0608b895: NOKEY

Preparing... ########################################### [100%]

1:perl-Devel-CheckLib ########################################### [100%]

4. 这时再使用pt-show-grants测试, 正常了.

若感兴趣可关注订阅号"数据库最佳实践"(DBBestPractice).


数据 数据库 库文件 工具 软件 命令 文件 软件包 路径 客户 客户端 就是 源码 目录 过程 测试 细心 操作系统 两个 信息 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 如何制作fm数据库 广东程序软件开发大概要多少钱 网络安全问题的措施与手段 网络安全部门 格局 互联网科技情报工作 网络技术综合题第四道大题 lol各服务器王者段位人数 数据库字段与模型映射 网络安全心得研讨 近年来常用的软件开发框架有哪些 无锡专业软件开发口碑推荐 数据库同步复制笔记 微信数据库修复失败登录不了 实训控制系统ks考试服务器 清远通信软件开发代理价格 数据库都有什么管理软件 服务器端口开放后不通 如何创建网络安全环境 共商共建网络安全作文 海康威视服务器管理密码 腾讯云轻量服务器做2008系统 c语言制作sqlite数据库 审方软件 数据库 深圳oa软件开发方案 香港服务器电商怎么选 广东揭阳网络安全登记 网络安全主体责任安全承诺书 软件开发的产品与服务 警方如何收集dna数据库 全球机器人网络技术大会
0