Я конвертирую веб-сайт из ISO в UTF-8, поэтому мне также нужно преобразовать базу данных MySQL.
В Интернете я читаю различные решения, я не знаю, какой из них выбрать.
Мне действительно нужно преобразовать мои столбцы varchar в двоичные, а затем в UTF-8:
ALTER TABLE t MODIFY col BINARY(150);
ALTER TABLE t MODIFY col CHAR(150) CHARACTER SET utf8;
Для каждого столбца каждой таблицы каждой базы данных требуется много времени.
У меня есть 10 баз данных, каждая из которых содержит по 20 таблиц, с 2 - 3 столбцами varchar (2 запроса в каждом столбце), это дает мне около 1000 запросов для записи! Как это сделать?
Решено: Я отправляю код, который я использовал:
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
Подробнее см. ниже.