MySQL Datenbank nach UTF-8 konvertieren

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%
Getagged mit:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.