Diese beiden Shell-Skripte erzeugen jeweils eine SQL Datei, die eine komplette Datenbank mydbname nach UTF-8 konvertiert. Zuerst ein bash Skript für Linux:
#!/bin/bash DB="mydbname" OUT="utf8.sql" echo "USE \`$DB\`;" > $OUT echo "SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;" >> $OUT echo "ALTER DATABASE \`$DB\` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;" >> $OUT mysql information_schema --user=root -p --silent --skip-column-names -e "select concat('ALTER TABLE \`',table_name,'\` CONVERT TO CHARACTER SET utf8;') from tables where TABLE_SCHEMA = '$DB'" >> $OUT echo "SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;" >> $OUT
Hier eine Windows-Variante des Skripts
set DB=mydbname set OUT=utf8.sql echo USE `%DB%`; > %OUT% echo SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; >> %OUT% echo ALTER DATABASE `%DB%` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; >> %OUT% mysql information_schema --user=root -p --silent --skip-column-names -e "select concat('ALTER TABLE \`',table_name,'\` CONVERT TO CHARACTER SET utf8;') from tables where TABLE_SCHEMA = '%DB%'" >> %OUT% echo SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; >> %OUT%