Alterando a senha do usuário padrão do PostgreSQL
Mais uma dica rápidinha para os que estão precisando realizar esta tarefa.
Conecte ao servidor com o usuário root e depois se transforme no usuário “postgres” como no exemplo abaixo:
root@pgsql1:~# su – postgres
Agora que está com o usuário postgres, execute o seguinte comando:
postgres@pgsql1:~$ psql template1
Logado no “cliente do postgres” digite o seguinte comando:
template1=# ALTER USER postgres WITH PASSWORD ‘SUA_NOVA_SENHA’;
Agora digite “q” para sair, desconecte do servidor e tente conectar com a sua aplicação ou seu cliente PostgreSQL ao seu servidor com a nova senha.
Espero ter ajudado. Um abraço a todos!
Acesso via rede ao PostgreSQL
Vou explicar de forma rápida e objetiva como realizar o acesso via rede ao seu servidor PostgreSQL. Primeiramente, vamos editar o arquivo “pg_hba.conf” que no Debian fica em “/etc/postgresql/[Versao]/main”.
# vi /etc/postgresql/8.3/main/pg_hba.conf
Agora vamos adicionar a seguinte linha:
host all all 192.168.100.0 255.255.255.0 md5
Lembrando que o range de IPs de minha LAN é 192.168.100.0 e máscara 255.255.255.0.
Pronto, agora salve o arquivo e saia dele.
Nas versões > 8.0 do PostgreSQL, foi necessário modificar também o postgresql.conf setando a variável “listen_addresses”. Na verdade ela já existe dentro do arquivo, porém ela vem comentada. Então vamos descomenta-la e setar o valor:
listen_addresses = ‘*’
Pronto. Agora salve o arquivo, saia dele e reinicialize o seu servidor PostgreSQL.
# /etc/init.d/postgresql restart
Agora é só testar a conexão via rede.
Time zone x Linux x Java
Esta semana tive uma desagradável surpresa em meus servidores Linux que rodam aplicações Java. Como todo ano, o Brasil entra em horário de verão e oficialmente até o ano passado era o dia 12 de outubro. Sendo assim, desavisado sobre meu ambiente de produção que está localizado em São Paulo e foi instalado pelos administradores do data-center paulistano e que selecionaram na hora da instalação do sistema operacional o fuso-horário “America/São Paulo” e não “America/Recife” que é a cidade onde a empresa está sediada.
Na segunda-feira a surpresa, todas as lojas pegaram o famoso “horário de verão” então lá fomos nós setar os horários nos servidores mas não basta só isso, afinal quando acabar o horário de verão os servidores iriam atrasar em 1h. Porém tivemos a desgradável surpresa de que a Java Virtual Machine (JVM) ignora a hora do computador. Embora o horário “estivesse” correto a JVM adiantava em 1h, pesquisando descobrimos que a JVM usa o fuso para ajustar o relógio interno e ignora a hora da BIOS/Sistema Operacional.
Primeiro foi necessário setar o fuso do Sistema Operacional de forma correta. Em nosso ambiente de testes que roda CentOS 5.2 e 4.3 resolvemos com o “zic” através do comando:
# zic -l America/Recife
Lembrando que aqui você poderia colocar o seu fuso.
Já em produção temos Redhat 4 EL. Então o “zic” estava nos retornando o erro abaixo:
# zic -l America/Recife
“command line”, line 1: warning: hard link failed, symbolic link used
Então mais um pouco de pesquisa descobri que o Redhat tem um utilitário chamado “dateconfig” para configuração do fuso.
# dateconfig
Selecione seu fuso e dê Ok.
Lembrando que: Para fazer isso em produção pare os serviços da máquina, pois poderá afetar as suas aplicações que utilizam data/hora do servidor.
Instalando PHP 5 com suporte a MySQL, PostgreSQL, FirebirdSQL e IBM DB2
Sistema operacional utilizado: Linux CentOS 5.2 (x86_64)
Servidor Web utilizado: Apache 2.2 HTTP Server
Versão do PHP: 5.2.6
Versão do DB2: 9.5
Não é uma tarefa nada difícil.
Primeiro passo é remover os pacotes do PHP do CentOS:
# rpm -e php-cli-5.1.6-20.el5 php-ldap-5.1.6-20.el5 php-5.1.6-20.el5 php-common-5.1.6-20.el5
Agora, atualizamos o sistema e instalamos as dependências:
# yum update
# yum install httpd-devel.x86_64 postgresql-devel.x86_64 postgresql-libs.x86_64 postgresql-server.x86_64 postgresql.x86_64 mysql-server.x86_64 mysql-devel.x86_64 mysql.x86_64 unixODBC.x86_64 libdbi-dbd-mysql.x86_64 mysql-devel.x86_64 mysql.x86_64 mysql-test.x86_64
Resolvendo problemas de link simbólicos do MySQL:
# ln -s /usr/lib64/mysql/libmysqlclient.so.15.0.0 /usr/lib/libmysqlclient.so
# ln -s /usr/lib64/mysql/libmysqlclient.so.15.0.0 /usr/lib/libmysqlclient.so.15
Instalando o pacote do FirebirdSQL baixado do site oficial (www.firebirdsql.org).
# rpm -ihv FirebirdSS-2.0.4.13130-1.amd64.rpm
Compilando o PHP 5.2.6 (Código fonte baixado do site oficial: www.php.net).
# tar xvjf php-5.2.6.tar.bz2 -C /usr/src/.
# cd /usr/src/php-5.2.6
Lendo o profile da sua instância do DB2:
# source /home/db2inst1/sqllib/db2profile
Iniciando a compilação
# ./configure –prefix=/usr –sysconfdir=/etc/php5 –with-apxs2 –with-mod_charset –localstatedir=/var –with-config-file-path=/etc/php5 –with-config-file-scan-dir=/etc/php5/conf.d –disable-debug –enable-pic –enable-dbase –disable-rpath –enable-inline-optimization –with-bz2 –with-db4 –with-curl –with-freetype-dir=/usr –enable-gd-native-ttf –without-gdbm –with-gettext –without-gmp –with-iconv –with-openssl –with-xml –with-expat-dir=/usr –with-zlib –with-layout=GNU –enable-bcmath –enable-exif –enable-ftp –enable-magic-quotes –enable-safe-mode –enable-sockets –enable-shmop –enable-sysvmsg –enable-track-vars –enable-trans-sid –disable-yp –enable-wddx –with-pear –enable-memory-limit –enable-calendar –enable-dbx –enable-dio –with-mime-magic –with-mysql –with-pgsql –with-interbase –with-readline –enable-gd-jis-conv –enable-fastcgi –enable-discard-path –enable-force-cgi-redirect –enable-dba –with-gd –with-jpeg-dir=/usr –with-png-dir=/usr –with-ibm-db2 –with-iodbc
# make
# make install
# cp php.ini-recommended /etc/php5/php.ini
Configurando o Apache
# vi /etc/httpd/conf.d/php5.conf
Inserir o seguinte conteúdo:
# Load PHP5 Module
LoadModule php5_module /usr/lib64/httpd/modules/libphp5.so
# File types
AddType application/x-httpd-php .php
Editando o HTTPD.CONF
# vi /etc/httpd/conf/httpd.conf
Localizar a linha que contém:
DirectoryIndex index.html index.html.var
Substituir por:
DirectoryIndex index.html index.php index.html.var
Configurando a inicialização do Apache:
# vi /etc/init.d/httpd
Adicionar no inicio:
. /home/db2inst1/sqllib/db2profile
Pronto! Agora crie o seu “phpinfo.php”.
# vim /var/www/html/phpinfo.php
Adicionar o seguinte conteúdo:
<? phpinfo(); ?>
Agora salve e reinicie o seu HTTPD:
# service httpd restart
Agora é só acessar: http://ip.do.seu.servidor/phpinfo.php
Várias customizações podem ser feitas no seu php.ini ou ainda na sua compilação, é só pesquisar.
Acessando compartilhamento SMB no CentOS 5
Hoje precisei restaurar um backup via rede de Linux para Linux via SMB (poderia ter usado NFS, mas eu queria fazer via SMB), então lá fui eu a moda antiga montar o meu compartilhamento samba usando a opção “smbfs” e o CentOS me dizia que não conhecia esse sistema de arquivos e agora o que fazer?
Simples, 2min de conversa com o Oráculo, eis que descobri que o SMBFS está “deprecated”, e a recomendação é utilizar o “CIFS”
Então foi assim que resolvi o meu problema:
# mount -t cifs -o users,rw //192.168.100.60/backup /mnt
Prontinho! Compartilhamento SMB acessível, isso serve tanto para servidores com samba quanto servidores Windows.