$ yum -y install perl perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-Digest-MD5
到 https://www.percona.com/downloads/percona-toolkit/LATEST/ 下载并安装:
# wget https://www.percona.com/downloads/percona-toolkit/3.1.0/binary/redhat/7/x86_64/percona-toolkit-3.1.0-
2.el7.x86_64.rpm
# rpm -ivh percona-toolkit-3.1.0-2.el7.x86_64.rpm
warning: percona-toolkit-3.1.0-2.el7.x86_64.rpm : Header V4 RSA/SHA256 Signature, key ID 8507efa5: NOKEY
error: Failed dependencies:
perl(DBD::mysql) >= 1.0 is needed by percona-toolkit-3.5.5-1.el7.x86_64
perl(IO::Socket::SSL) is needed by percona-toolkit-3.5.5-1.el7.x86_64
perl(Digest::MD5) is needed by percona-toolkit-3.5.5-1.el7.x86_64
安装失败 的方案 增加 --force
--nodeps
强制不检测依赖.
编写一个脚本 pt.sh
#!/bin/bash
table=$1
alter_conment=$2
cnn_host='127.0.0.1'
cnn_user='root'
cnn_pwd='密码'
cnn_db='kiddo'
echo "$table"
echo "$alter_conment"
/usr/bin/pt-online-schema-change --charset=utf8mb4 --no-version-check --user=${cnn_user} --password=${cnn_pwd} --host=${cnn_host} P=3306,D=${cnn_db},t=$table --alter "${alter_conment}" --execute --nocheck-unique-key-change --no-check-alter
chmod oug+x pt.sh
例子 :
./pt.sh rec_reading_record_v2_book "DROP PRIMARY KEY, ADD PRIMARY KEY (id, reading_record_id) PARTITION BY RANGE(reading_record_id) (PARTITION p0 VALUES LESS THAN (10000000), PARTITION p1 VALUES LESS THAN (20000000), PARTITION p2 VALUES LESS THAN (30000000))"
亲测 有效 可以尝试下.
账号需要有权限进行DDL 操作