本人数据库的引擎是innodb;
脚本,里面包含了,字符串的匹配,以及正则表达式
if语句, for 语句
之前网上有一种,
是直接修改数据库里面的表面的形式,很遗憾这样做,还是会出现丢表的现象。
最安全的一种形式应该是,备份与还原
#!/bin/bash
mysqlconn="mysql -ulyon3306 -p5601564a -h192.168.1.128"
mysqldump_out="mysqldump -ulyon3306 -p5601564a -h192.168.1.128 --opt -R heke > /dtd/backup/sqls/heke.sql"
mysqldump_in="mysql -ulyon3306 -p5601564a -h192.168.1.128 hewke < /dtd/backup/sqls/heke.sql"
olddb="heke"
newdb="hewke"
create_newdb="$mysqlconn -e 'create database heke10000 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;'"
echo $create_newdb;
#eval $create_newdb ;
params=$($mysqlconn -N -e "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE table_schema='$olddb'")
params_dbs=$($mysqlconn -N -e "show databases")
#$create_newdb &&
for db_name in $params_dbs ;do
if [[ $db_name == heke100* ]]
then
new_db_name=${db_name/'heke'/'hewke'}
create_inewdb=${create_newdb/'heke10000'/$new_db_name}
imysqldump_out=${mysqldump_out//'heke'/$db_name}
imysqldump_in=${mysqldump_in//'heke'/$db_name}
imysqldump_in=${imysqldump_in//'hewke'/$new_db_name}
echo $new_db_name;
echo $db_name;
echo $create_inewdb;
echo $imysqldump_out;
echo $imysqldump_in;
eval $create_inewdb ;
eval $imysqldump_out;
eval $imysqldump_in;
#for name in $params; do
#show="$mysqlconn -e 'RENAME TABLE $db_name.$name to $new_db_name.$name';"
#echo $name
#echo $show
#eval $show;
#done;
fi
done;
#$mysqlconn -e “DROP DATABASE $olddb”
mysqldump -h192.168.1.128 -ulyon -p5601564a --opt -R heke10034 > G:\conf\log_basic_1119.sql