涉及awk、Here Document、mysql。
1. 在主机上通过mysql客户端工具连接
#!/bin/bash
tidb_dir=/home/*/tidb/bin
tidb_ip=`kubectl get svc -A | grep tidb | grep 4000 | awk '{print $4}'`
cd ${tidb_dir}
chmod +x mysql
./mysql -h${tidb_ip} -P4000 -uadmin -padmin << EOF
select version();
select 9 > '10';
EOF
2. 在pod中通过mysql客户端工具连接
#!/bin/bash
ns_xxx=`kubectl get ns | grep ^xxx | awk '{print $1}'`
pod_yyy=`kubectl get pods -A | awk '{print $2}' | grep ^yyy`
# 注意这里需要去掉-t,否则会有以下告警:
# Unable to use a TTY - input is not a terminal or the right kind of file
kubectl exec -n ${ns_xxx} -i ${pod_yyy} bash -- mysql -hbasic-tidb -P4000 -uadmin -padmin << EOF
select version();
select 9 > '10';
EOF
kubectl -n ${ns_xxx} delete pod ${pod_yyy}
该文章展示了如何通过bash脚本结合awk和kubectl命令行工具,从主机和Kubernetespod内部连接到MySQL服务进行版本查询操作。在主机上,脚本获取tidb服务IP并执行SQL;在pod内,它直接在bash会话中执行相同查询,同时注意了避免使用-t选项以消除警告。
1285

被折叠的 条评论
为什么被折叠?



