Отправить заявку

MySQL: проблема с некоторыми русскими буквами, например «и» и «ш»

При переносе базы MySQL может возникнуть проблема с некоторыми символами, например «и» и «ш». Это происходит из-за неправильной перекодировки.

Проблему легко решить в течении минуты. Заходим на сервер через SSH и создаем bash скрипт:

#!/bin/bash

DB_USER="Логин"
DB_PASS="Пароль"
DB_NAME="Имя неверно сконвертированной БД"
DB_CONNECT="mysql -N -u $DB_USER -p $DB_PASS $DB_NAME"

for i in `echo "show tables;" | $DB_CONNECT`
do
for j in `echo "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='$DB_NAME' AND TABLE_NAME='$i';" | $DB_CONNECT`
do
echo "UPDATE $i SET $j = REPLACE($j, CONCAT( CHAR(209), CHAR(63) ), CONCAT( CHAR(209), CHAR(136) ));" | $DB_CONNECT
echo "UPDATE $i SET $j = REPLACE($j, CONCAT( CHAR(208), CHAR(63) ), CONCAT( CHAR(208), CHAR(152) ));" | $DB_CONNECT
done
echo $i
done

Все. После запуска, скрипт, пройдет по всем таблицам, которые содержит БД и исправит некорректные символы на верные.

Другие публикации