我写了一个脚本。可以复制数据库中每一个表转移到另一个数据库。可是总是有几个表转移不了。后来通过研发部的前辈我了解到,没办法转移的是视图。请问用什么sql语句可以将视图转移到另一个数据库。或者有什么可以整库复制转移(我试了很多网上的方法都行不通)。另外我们的是mysql数据库docker容器
my.cnf配置如下
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
back_log=500
wait_timeout=1800
max_connections=1000
max_user_connections=800
default-storage-engine= InnoDB
key_buffer_size=384M
innodb_buffer_pool_size=1024M
init-connect='SET NAMES utf8'
character-set-server = utf8
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
lower_case_table_names=1
collation-server = utf8_unicode_ci
interactive_timeout=7200
max_allowed_packet = 20M
log_timestamps=SYSTEM
log-bin=/var/lib/mysql/mysql-bin
server-id=123454
binlog-format=ROW
脚本如下
#!/bin/bash
#time=`date +%F`
bak=_baka
read -p "请输入要备份的数据库" name
iname=$name$bak
#dd=`docker exec -i mysql mysql -uroot -proot -e "select table_name from information_schema.tables where table_schema='$name';"|grep -Evi "table_name"`
dd=`docker exec -i mysql mysql -uroot -proot -e "use gdxl;show tables" | grep -v "Tables_in_gdxl"`
docker exec -i mysql mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS $iname"
for i in $dd
do
#echo $i
#echo "$iname"
docker exec -i mysql mysql -uroot -proot -e "CREATE TABLE $iname.$i LIKE $name.$i;"
docker exec -i mysql mysql -uroot -proot -e "INSERT INTO $iname.$i SELECT * FROM $name.$i;"
if [ $? -eq 0 ];then
echo "$i=ok"
else
echo "$i=no" >> /root/shuju
fi
done
求助各位大佬!!!!