Wednesday, June 12, 2013

MySQL não inicializa após atualização do Ubuntu

Após realizar a atualização do Ubuntu p/ a versão 12.04, o MySQL que estava instalado nessa mesma máquina parou de funcionar. Ao tentar inicializar o serviço o seguinte erro era apresentando start: Job failed to start.

Analisando o log do banco encontrei o seguinte trecho:
init: Failed to spawn mysql main process: unable to execute: No such file or directory

Em um fórum sobre Ubuntu, existe uma thread que envolve o assunto, que apresenta possíveis soluções. No meu caso, para resolver o problema fiz o backup dos dados (schemas / tables / data) e reinstalei os serviços do MySQL no Ubuntu.

Primeiro passo é fazer o backup do MySQL. Na verdade isso é muito simples basta replicar o conteúdo da pasta /var/lib/mysql. A seguir os comandos para realizar isso (note que o nome do meu usuário linux é yaw, utilize o nome do seu usuário):
yaw@local:~/$ mkdir /home/yaw/mysql/
yaw@local:~/$ sudo chmod 777 -R mysql
yaw@local:~/$ cd /var/lib/mysql/
yaw@local:/var/lib/mysql$ sudo cp * /home/yaw/mysql/ -R

Proxima etapa é desinstalar o MySQL no Ubuntu (use a versão do MySQL adequada):
yaw@local:~/$ sudo apt-get purge mysql-server-{version} mysql-common

Agora é o momento de restaurar o backup do MySQL, voltar a pasta mysql para o diretório /var/lib, veja:
yaw@local:~/$ sudo mkdir /var/lib/mysql/
yaw@local:~/$ sudo chown root:root /var/lib/mysql/ -R
yaw@local:~/$ cd ~/mysql
yaw@local:~/$ sudo cp * /var/lib/mysql/ -R
yaw@local:~/$ cd ..
yaw@local:~/$ sudo rm -rf ~/mysql

Por fim a instalação do MySQL no Ubuntu:
yaw@local:~/$ sudo apt-get install mysql-server

Pronto, o MySQL foi "restaurado" no Ubuntu 12.04.

[]s

Thursday, June 06, 2013

Openshift, como copiar o arquivo de log do Tomcat 7

Neste post descrevo os passos para copiar o arquivo de log do Tomcat 7, rodando no Openshift (plataforma cloud da Red Hat). O objetivo de copiar o arquivo de log do Openshift para minha máquina, é simplesmente facilitar a consulta e análise dos registros de log.

Primeiro é necessário acessar a aplicação no Openshift via ssh (a forma mais simples é copiar a hash ssh na página da sua aplicação no site do próprio Openshift).

O Openshift mantém uma série de variáveis de ambiente pré-definidas, com o propósito de armazenar o caminho para algumas pastas do sistema de arquivos da plataforma. Todas essas variáveis possuem o prefixo OPENSHIFT_. Com o comando a seguir é possível listar e visualizar o conteúdo de todas essas variáveis:

<openshift>$ env | grep OPENSHIFT_

Para acessar os logs do Tomcat (JBoss EWS), utilizo a variável de ambiente OPENSHIFT_JBOSSEWS_LOG_DIR. A próxima etapa é fazer a cópia do arquivo de log para o diretório de dados (app-root/data) no OpenShift. A variável de ambiente que aponta para esse diretório é OPENSHIFT_DATA_DIR. A seguir a instrução para realizar a cópia do arquivo catalina.out:

<openshit>$ cp $OPENSHIFT_JBOSSEWS_LOG_DIR/catalina.out $OPENSHIFT_DATA_DIR

Lembre-se que por questões de segurança o Openshift só permite a transferência via ssh de arquivos contidos na pasta data

Agora é só baixar (copiar) o arquivo catalina.out do Openshift para a máquina local:

yaw@local:~/$ scp {hash_}@{app}.rhcloud.com/~/app-root/data/catalina.out /~ 

Pronto, com o arquivo local fica mais fácil analisar o log da aplicação.

[]s

Tuesday, June 04, 2013

Nodejs: configuração de proxy c/ autenticação no npm

Dica útil para resolver problemas com npm, o gerenciador de pacotes do Nodejs. O erro "npm error Error: tunneling socket could not be established", pode ocorrer devido ao uso de proxy com autenticação.

No Ubuntu, o npm respeita a configuração de proxy (http e https) das variáveis de ambiente http_proxy e https_proxy, respectivamente. Para visualizar as configurações de proxy do npm, utilize o seguinte comando:

$ npm config get proxy

O comando deve exibir o host (ip) do proxy configurado. Pra informar as credenciais do proxy ao npm, é necessário modificar a configuração do gerenciador, isso pode ser feito com o comando (utilize suas informações de crendencial):

$ npm config set proxy http://usuario:senha@host_proxy:porta_proxy

Para https, utilize a property https-proxy nas configurações do npm.

Agora o npm install vai realizar a autenticação no proxy.

[]s
http://twitter.com/edermag
http://www.yaw.com.br