Estoy convirtiendo un sitio web de ISO a UTF-8, así que también necesito convertir la base de datos MySQL.Convertir una base de datos MySQL de latín a UTF-8
En Internet, leo varias soluciones, no sé cuál elegir.
¿Es realmente necesario para convertir mis columnas varchar a binario, a continuación, a UTF-8 así:
ALTER TABLE t MODIFY col BINARY(150);
ALTER TABLE t MODIFY col CHAR(150) CHARACTER SET utf8;
Se necesita mucho tiempo para hacer eso para cada columna, de cada mesa, de cada base de datos .
Tengo 10 bases de datos, con 20 tablas cada una, con alrededor de 2 - 3 columnas varchar (2 consultas cada columna), esto me da alrededor de 1000 consultas para escribir! ¿Cómo hacerlo?
Resuelta: que enviar el código que he utilizado:
PASSWORD=""
db=$1
mysqldump --password=$PASSWORD --set-charset --skip-set-charset --add-drop-table --databases "$db" > /home/dev/backup/bdd.sql
QUERY="ALTER DATABASE \`$db\` DEFAULT CHARACTER SET utf8;"
mysql --password=$PASSWORD --database "$db" -e "$QUERY"
mysql --password=$PASSWORD --default-character-set=utf8 < /home/dev/backup/bdd.sql
Véase la respuesta a continuación para obtener más información.
no son '-set-charset' y '--skip-set-charset' compitiendo directamente banderas? Los documentos dicen que afectan el uso de 'SET NAMES', pero no configuran el parámetro' DEFAULT CHARSET = X' que se envía a través de 'mysqldump' por tabla. (mysql 5.5) – fideloper