Oggi ho dovuto renderlo tale. Ho già Windows db in minuscolo e ho bisogno di importare in linux db con nomi di maiuscole e minuscole, quindi l'opzione play con lowecase_table_names non è un'opzione :)
Sembra che "mostra tabelle" visualizza i nomi delle tabelle correttamente ordinati e i dump hanno nomi di tabelle sfuggiti con `character. Ho con successo importato il database con seguente algoritmo:
- ho mydb.sql con finestre minuscole discarica
- ho iniziato applicazione per creare lo schema del database in Linux, con i nomi di maiuscole e minuscole.
Quindi ho nomi minuscoli in dump e nomi case sensitive nel database mysql. Ho convertito la discarica utilizzando sed & awk con seguente 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
E la discarica è stata convertita correttamente. Tutto funziona dopo l'importazione in Linux.
fonte
2012-10-09 17:29:47
Tutte queste opzioni richiedono che l'utente sia tornato indietro nel tempo e abbia configurato l'opzione database lower_case_table_names prima della creazione dei dati. –