sábado, 31 de janeiro de 2015

Corrigindo o erro "old_password" no MySQL

Olá galera,

Recentemente precisei migrar um sistema feito com Laravel 3.2 para um servidor com PHP 5.5.9. Antes de realizar a migração, para quem não sabe, é necessário fazer uns ajustes e podem ser conferidos no link http://www.codegeo.com.br/2014/05/corrigindo-conflito-do-yield-do-laravel.html.

Com as correções feitas, surgiu o seguinte erro: PDO::__construct(): The server requested authentication method unknown to the client [mysql_old_password].

O problema é causado devido ao novo formato para senha do banco que é de 41 bytes ao invés do formato antigo que é de 16.

Execute os comandos abaixo no banco que deseja alterar a senha. Esse procedimento pode ser feito diretamente no MySQL(terminal), MySQL Workbench, PHPMyAdmin ou qualquer outro da sua preferência.

    SET SESSION old_passwords=0;
    SET PASSWORD = PASSWORD('senha_do_seu_banco');
  

Na linha 1, desativamos o old_passwords para a sua session.

Na linha 2, alteramos a senha.

OBS: Os comandos devem ser executados juntos caso contrário não vai funcionar.

Espero que a dica seja útil para quem se deparou com o mesmo problema.

Um grande abraço e até a próxima.

terça-feira, 13 de janeiro de 2015

Instalar o módulo OCI8 (Oracle) no Ubuntu 14.04

1 - Instalar PHP5 e Apache 2

http://www.codegeo.com.br/2013/01/instalando-apache-2-e-php-5-no-ubuntu.html

2 - Baixar o Oracle Instant Client

Para que o módulo php-oci8 funcione, é necessário baixar o Instant Client.

http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

Baixe os arquivos Instant Client Package - Basic e Instant Client Package - SDK

OBS: Faça o download dos arquivos ZIP de acordo com a versão do seu banco de dados.

3 - Preparar Instant Client

Extraia o basic e o sdk para uma pasta instantclient dentro de /opt

unzip instantclient-basic-linux.x64-XX.X.X.X.X.zip -d /opt
unzip instantclient-sdk-linux.x64-XX.X.X.X.X.zip -d /opt

Os comandos acima irão extrair os 2 arquivos ZIP e colocá-los dentro de uma pasta chamada instantclient_XX_X, sendo que o X indica a versão baixada.

Agora vamos criar alguns links simbólicos dentro da pasta.

cd /opt/instantclient_XX_X
ln -s libclntsh.so.XX.X libclntsh.so
ln -s libocci.so.XX.X libocci.so

4 - Instalar bibliotecas necessárias

sudo apt-get install libaio1 php-pear php5-dev

5 - Preparar PECL/PEAR

pear upgrade --force pear
pear upgrade
pear channel-update pear.php.net
pecl channel-update pecl.php.net

6 - Instalar PECL/PEAR

pecl install oci8

Durante a instalação, o PECL irá pedir para você localizar o Instant Client e será exibida uma mensagem como abaixo:
Please provide the path to the ORACLE_HOME directory. Use 'instantclient,/path/to/instant/client/lib' if you're compiling with Oracle Instant Client [autodetect] :

Digite o código abaixo e em seguida pressione Enter

instantclient,/opt/instantclient_XX_X

7 - Incluir o OCI8 ao php.ini

sudo nano /etc/php5/apache2/php.ini

No final do arquivo acrescente a linha abaixo:

extension=oci8.so

Para salvar as alterações, aperte CTRL+X, digite Y e em seguida pressione Enter

8 - Reiniciar o Apache

sudo service apache2 restart

Verifique no phpinfo() se o módulo esta ativo. Caso a instalação tenha sido feita corretamente, irá aparecer uma imagem como a abaixo.

OBS: Não apague a pasta /opt/instantclient_XX_X pois o OCI8 deixará de funcionar.

quarta-feira, 17 de dezembro de 2014

Shapefiles do Brasil atualizados

Olá galera,

Conforme prometido, estou disponibilizando shapefiles do Brasil atualizados. Os shapes foram disponibilizados dia 09/12/2014 e retirados do FTP do IBGE.

Estou disponibilizando somente alguns já que o tamanho do arquivo original era bem grande. Separei em arquivos compactados e com os nomes dos shapes para facilitar o download.

Através do link https://1drv.ms/f/s!Aq1Z5mSs_16MjU6CWivY-M5iTmpI, é possível realizar o download dos seguintes shapes: país, municípios (5.570), estados, capitais, cidades e vilas.

Caso esteja necessitando ou possua um shapefile que considere importante para a comunidade, entre em contato conosco.

Um grande abraço e até a próxima.

terça-feira, 16 de dezembro de 2014

2 Anos de CodeGeo

Olá galera,

Dia 12/12/2014, o nosso blog completou 2 anos. Estou comemorando um pouco atrasado, devido a correria com os projetos que estou trabalhando.

Gostaria de agradecer a todos os leitores pela assiduidade e pelas mensagens enviadas.

Peço desculpas por não responder no prazo ou não conseguir atender algum pedido específico.

Nosso planejamento para 2015, é realizar mais vídeos tutoriais sobre algumas tecnologias e dar uma atualizada com relação aos temas abordados no blog.

Como não poderia deixar de fazê-lo, quero agradecer mais uma vez aos amigos Luís Lopes por incentivar a criação do blog e ao Anderson Medeiros que vem apoiando e divulgando o nosso trabalho.

Para finalizar, fica aí o meu MUITO OBRIGADO a todos que incentivam e apoiam a nossa iniciativa de compartilhar o conhecimento.

Grande abraço.

sexta-feira, 5 de dezembro de 2014

Corrigindo o erro de Datetime field overflow no PostgreSQL 9.3

Olá galera,

No post de hoje iremos mostrar como corrigir um erro como este: Datetime field overflow: 7 ERROR: date\/time field value out of range: \"27\/11\/2014\"\nHINT: Perhaps you need a different \"datestyle\" setting.

No meu caso, o problema ocorreu porque as versões do PostgreSQL, no ambiente de desenvolvimento e testes, encontravam-se em idiomas diferentes.

Após muita pesquisa, encontrei uma dica que mandava executar o seguinte comando: SET datestyle = mdy;

O problema do comando acima é que ele é válido somente para aquela sessão e não resolve de forma definitiva. Para solucionar de forma permanente, é necessário alterar o arquivo /etc/postgresql/9.3/main/postgresql.conf.

Utilize um editor da sua preferência e abra o arquivo postgresql.conf. Pesquise pela palavra datestyle, no meu arquivo está na linha 506, e altere o seu valor para que fique assim datestyle = 'iso, dmy'

Agora basta reiniciar o PostgreSQL para que a atualização passe a funcionar.

Fica aí a dica. Um grande abraço a todos e até a próxima.