Hoy tuve que hacerlo así. Ya tengo Windows db en minúsculas y necesito importar a linux db con nombres de tablas sensibles a mayúsculas/minúsculas, por lo que la opción de nombre lowecase_table_names no es una opción :)
Parece que 'mostrar tablas' muestra nombres de tabla ordenados adecuadamente y el volcado ha escapado de los nombres de tabla con `carácter. He importado con éxito la base de datos con el siguiente algoritmo:
- tengo mydb.sql con ventanas minúsculas volcado
- empecé aplicación para crear el esquema de base de datos en Linux, con los nombres de mayúsculas y minúsculas.
Luego he tenido nombres de minúsculas en nombres de volcado y mayúsculas y minúsculas en la base de datos de MySQL. Convertí el vertedero usando sed & awk con el siguiente script:
#!/bin/bash
MYSQL="mysql -u root -p mydb"
FILE=mydb.sql
TMP1=`mktemp`
TMP2=`mktemp`
cp $FILE $TMP1
for TABLE in `echo "show tables" | $MYSQL`; do
LCTABLE=`echo $TABLE| awk '{print tolower($0)}'`
echo "$LCTABLE --> $TABLE"
cat $TMP1 | sed "s/\`$LCTABLE\`/\`$TABLE\`/" > $TMP2
cp $TMP2 $TMP1
done
cp $TMP1 $FILE.conv
rm $TMP1
rm $TMP2
Y el vertedero se ha convertido correctamente. Todo funciona después de la importación en Linux.
Todas estas opciones requieren que el usuario haya retrocedido en el tiempo y haya configurado su base de datos opción low_case_table_names antes de crear los datos. –