segunda-feira, 21 de julho de 2014

Mudando encoding do Postgres 9.3 para UTF8

Alterando o encoding do Postgres 9.3 para UTF-8.

Testado em CentOS 6 e Rad Hat Enterprise 6.

1º - Fazer backup das bases.

2º - Fazer backup dos arquivos “.conf”:

# cd /var/lib/pgsql/9.3/data
# cp -a pg_hba.conf postgresql.conf ../backups


3º - Parar o banco:

#service postgresql-9.3 stop

4º - Remover o conteúdo da pasta data:

# cd /var/lib/pgsql/9.3
# rm -rf data/*


* Obs.: Muito cuidado com este comando!

5º - Recriar o data:

$ su postgres
env LANG=UTF8  /usr/pgsql-9.3/bin/initdb --locale=pt_BR.UTF-8 --encoding=UTF8 -D /var/lib/pgsql/9.3/data

6º - Retornar com os “.conf”:

# cd /var/lib/pgsql/9.3/backups
# cp -a pg_hba.conf postgresql.conf ../data


7º - Restartar o Postgres:

#service postgresql-9.3 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

Um comentário:

  1. Parabéns Fernando pelo Blog, conheci esses dias e gostei muito.
    Eu costumo alterar o encoding quando preciso com o seguinte update.

    update pg_database set encoding = pg_char_to_encoding('LATIN1') where datname = 'MEUBANCO';

    ResponderExcluir