Mudando encoding do Postgres 8.4 para LATIN1
Dica publicada em Banco de Dados / Postgres
Mudando encoding do Postgres 8.4 para LATIN1
Necessitei alterar o encoding do Postgres 8.4, que por padrão é UTF-8. Esta dica serve para o Postgres 9
também.
Testado em CentOS 6 e Rad Hat Enterprise 6.
1º - Fazer backup das bases.
2º - Fazer backup dos arquivos “.conf”:
# cd /var/lib/pgsql/data
# cp -a pg_hba.conf postgresql.conf ../backups
3º - Parar o banco:
# /etc/init.d/postgresql stop
4º - Remover o conteúdo da pasta data:
# cd /var/lib/pgsql/
# rm -rf data/*
* Obs.: Muito cuidado com este comando!
5º - Recriar o data:
su postgres
# env LANG=LATIN1 /usr/bin/initdb --locale=pt_BR.iso88591 --encoding=LATIN1 -D /var/lib/pgsql/data/
6º - Retornar com os “.conf”:
# cd /var/lib/pgsql/backups
# cp -a pg_hba.conf postgresql.conf ../data
7º - Restartar o Postgres:
# /etc/init.d/postgresql restart
8º - Recriar senha do usuário postgres:
# sudo -u postgres psql
postgres=# alter user postgres with encrypted password 'senha';
9º - Testando:
# psql -h localhost -U postgres
Digite "help" para ajuda.
* Obs.: Em Debian e derivados, são caminhos diferentes.
Pronto!!! Agora é só correr para o abraço!
Um abraço a todos!
Testado em CentOS 6 e Rad Hat Enterprise 6.
1º - Fazer backup das bases.
2º - Fazer backup dos arquivos “.conf”:
# cd /var/lib/pgsql/data
# cp -a pg_hba.conf postgresql.conf ../backups
3º - Parar o banco:
# /etc/init.d/postgresql stop
4º - Remover o conteúdo da pasta data:
# cd /var/lib/pgsql/
# rm -rf data/*
* Obs.: Muito cuidado com este comando!
5º - Recriar o data:
su postgres
# env LANG=LATIN1 /usr/bin/initdb --locale=pt_BR.iso88591 --encoding=LATIN1 -D /var/lib/pgsql/data/
6º - Retornar com os “.conf”:
# cd /var/lib/pgsql/backups
# cp -a pg_hba.conf postgresql.conf ../data
7º - Restartar o Postgres:
# /etc/init.d/postgresql restart
8º - Recriar senha do usuário postgres:
# sudo -u postgres psql
postgres=# alter user postgres with encrypted password 'senha';
9º - Testando:
# psql -h localhost -U postgres
Senha para usuário postgres:
psql (8.4.9)
Digite "help" para ajuda.
postgres=# \l
Lista dos bancos de dados
Nome | Dono | Codificação | Collation | Ctype | Privilégios de acesso
-----------+----------+---------------+----------------+----------------+------------------------
postgres | postgres | LATIN1 | pt_BR.iso88591 | pt_BR.iso88591 |
template0 | postgres | LATIN1 | pt_BR.iso88591 | pt_BR.iso88591 | =c/postgres
: postgres=CTc/postgres
template1 | postgres | LATIN1 | pt_BR.iso88591 | pt_BR.iso88591 | =c/postgres
: postgres=CTc/postgres
(3 registros)
postgres=#
* Obs.: Em Debian e derivados, são caminhos diferentes.
Pronto!!! Agora é só correr para o abraço!
Um abraço a todos!
apague ele:
pg_dropcluster --stop 8.4 main
e crie outro na codificação q quiser:
pg_createcluster --start -e UTF-8 8.4 main
legenda:
8.4 - é a versão do postgres
main - é o nome padrão do cluster criado na instalação do postgres