We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on Vesta 2.0 and expect to release it by the end of 2024. Read more about it: https://vestacp.com/docs/vesta-2-development
Смена кодировки PostgreSQL на UTF8
-
- Posts: 3
- Joined: Fri Dec 16, 2016 3:46 pm
- Os: Ubuntu 15x
- Web: apache + nginx
Смена кодировки PostgreSQL на UTF8
Добрый день. Делаю миграцию, а тут такая ошибка:
Прежде решал её таким образом:
Но сейчас, этим способом, я снес всю базу данных и VestaCP выдает ошибку "Error: Connection to localhost failed". Можно перевести базу в UTF8, не затронув работоспособность?
Спасибо
in encoding "UTF8" has no equivalent in encoding "LATIN1"
Прежде решал её таким образом:
Code: Select all
$ sudo pg_dropcluster --stop 9.5 main
$ sudo pg_createcluster --locale en_US.UTF-8 --start 9.5 main
Спасибо
Re: Смена кодировки PostgreSQL на UTF8
Стоит попробовать вот эти решения:
http://stackoverflow.com/questions/3692 ... n-postgres
http://stackoverflow.com/questions/3692 ... n-postgres
Re: Смена кодировки PostgreSQL на UTF8
Собственно возникла такая же проблема (как на скрине из стартпоста) на последней версии vestacp (ubuntu 16.04).
Заметил, что после установки весты не сменились локали, везде тупо "en_US", а не "en_US.UTF-8".
При создании БД из панели выбирается кодировка utf-8, но это никак не помогает, т.к. в phppgadmin в столбце "кодировка" у БД всё равно LATIN1.
Подозреваю, что это из-за того, что по дефолу веста не ставит дефолтную кодировку в системе при установке или она сбрасывается каким-то магическим образом + сам образ убунты у хостера какой-то "некорректный" для весты, т.к. у другого хостера вроде бы таких проблем не было (проверил - у другого хостера всё ок). Смена кодировок при подключении через PHP PDO не помогает вообще.
Вообщем, хотелось бы чтоб команда весты проверила это недоразумение и пофиксила в следующих релизах такое поведение, чтоб не были базы в LATIN1, т.к. это ну уж совсем проблемно исправлять (через удаление и восстановление кластера и прочие похожие махинации).
Заметил, что после установки весты не сменились локали, везде тупо "en_US", а не "en_US.UTF-8".
При создании БД из панели выбирается кодировка utf-8, но это никак не помогает, т.к. в phppgadmin в столбце "кодировка" у БД всё равно LATIN1.
Подозреваю, что это из-за того, что по дефолу веста не ставит дефолтную кодировку в системе при установке или она сбрасывается каким-то магическим образом + сам образ убунты у хостера какой-то "некорректный" для весты, т.к. у другого хостера вроде бы таких проблем не было (проверил - у другого хостера всё ок). Смена кодировок при подключении через PHP PDO не помогает вообще.
Вообщем, хотелось бы чтоб команда весты проверила это недоразумение и пофиксила в следующих релизах такое поведение, чтоб не были базы в LATIN1, т.к. это ну уж совсем проблемно исправлять (через удаление и восстановление кластера и прочие похожие махинации).
Last edited by LAlf on Sat Mar 17, 2018 12:35 pm, edited 1 time in total.
Re: Смена кодировки PostgreSQL на UTF8
Вроде как помогла смена кодировки на пустой базе (до заполнения, сразу после создания) с помощью следующих команд в ssh:
PS: да, всё ок при таком подходе на пустой базе. Но отмечу ещё отдельно, что если база уже заполнена - только через дамп, чтоб избежать порчи данных. Способ тут нашел если что: https://stackoverflow.com/questions/509 ... s-database
Code: Select all
su postgres
psql --command="update pg_database set encoding = pg_char_to_encoding('UTF8') where datname = '[DATABASE_NAME]';"