首页 > 技术文章 > Mysql脚本 生成测试数据

rxysg 2021-12-14 15:13 原文

使用:
./xie.sh -uroot -p'123456'

#!/bin/bash
#混合测试数据库脚本
#将创建一个single数据库,其中创建一个s1表
#如果数据库存在,将会写入数据,可以在写入部分sleep 1 来让数据持续写入
#使用方法 ./xx.sh -uroot -p'123456'



#检查
mysql $* -e "show databases;" &> /tmp/info_error.txt
if [[ $? -ne 0 ]];then
    echo "time:$(date +%F-%H-%M-%S) info:登陆命令错误"
    cat /tmp/info_error.txt #如果错误则显示错误信息
    echo
    echo "./xx.sh -uroot -p'123456'"
    exit 1
fi

#检查库是否存在
mysql $* -e "use single;" &> /tmp/info_error.txt
if [[ $? -eq 0 ]];then
    mysql $* -e "use single;select * from s1 where id=1;"
    if [[ $? -ne 0 ]];then
        mysql $* -e "use single;drop table s1;"
        mysql $* -e "use single;create table s1(id int AUTO_INCREMENT PRIMARY KEY,name char(20),age int);"
    fi
else
    mysql $* -e "create database single;" 
    mysql $* -e "use single;create table s1(id int AUTO_INCREMENT PRIMARY KEY,name char(20),age int);"
fi

#name随机数
random_name() {
    local zu=(q w e r t y u i o p a s d f g h j k l z x c v b n m)

    for i in `seq 1 5`
    do
        local a=`echo $[RANDOM%24]`
        echo -n ${zu[a]}
    done
}

#age随机数
random_age() {
    local a=`echo $[RANDOM%99]`
    echo $a
}



#写入部分
for i in `seq 1 10000`
do
	b=`random_name`
    c=`random_age`
	sleep 2
	mysql $* -e "use single;insert into s1(name,age) values('${b}',${c});"
done

推荐阅读