sábado, 12 de setembro de 2015

Windows/Linux: Como resetar/alterar senha de root no mysql

Windows

  • Entre no sistema como administrador.
  • Pare o MySQL se ele estiver rodando. No windown va no gerenciador de serviços: Menu Iniciar, Painel de controle, Ferramentas Administrativas, Serviços. Encontre o serviço MySQL na lista e pare-o ou execute o seguinte comando: net stop mysql.Se o seu MySQL não estiver executando como serviço, você pode precisar utilizar o gerenciador de tarefas para forçar a parada dele.
  • Crie um aquivo de texto contendo a seguinte instrução em apenas uma linha. Troque a senha pela senha que deseja utilizar.
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MinhaNovaSenha');
    
  • Salve o arquivo. Nesse exemplo ficou assim: C:\mysql-init.txt.
  • Abra o prompt de comando e inicie o MySQL server com a opção especial --init-file:
  •   C:\> cd "C:\Program Files\MySQL\MySQL Server 5.5\bin"
      C:\> mysqld --init-file=C:\\mysql-init.txt
    

Linux

  • Pare o MySQL se estiver rodando. Localize o arquivo .pid que contém o ID do processo. Para exata locazação e nome desse arquivo depende de sua distribuição, host name e configuração. Localizações comuns são /var/lib/mysql/, /var/run/mysqld/, and /usr/local/mysql/data/. Geralmente esse arquivo possui a extensão .pid e começa com mysqld ou com o hostname do seu sistema.Pare o MySQL server enviando um normal kill (não kill -9) para o processo mysqld Use o caminho e o nome atual do arquivo.pid no seguinte comando:
      $ kill `cat /mysql-data-directory/host_name.pid`
    
  • Crie um arquivo de texto contendo a seguinte instrução em um unica linha, Altere a senha com a senha que deseja utilizar.
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MinhaNovaSenha');
    
  • Save o arquivo. Nesse examplo: /home/me/mysql-init. Tenha certeza que o arquivo tem permissão que permita mysql lê-lo.
  • Inicie o MySQL server com a opção especial --init-file:
      $ mysqld_safe --init-file=/home/me/mysql-init &
    
    O servidor executa o conteúdo do arquivo definido pela opção --init-file na inicialização alterando a senha da conta 'root'@'localhost'.
fonte: https://dev.mysql.com/doc/refman/5.5/en/resetting-permissions.html

sexta-feira, 11 de setembro de 2015

Gradle + Weld problemas para fazer o build ou testes unitários

  Depois de muito tempo quebrando a cabeça com esse erro:
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type ResourceAccessor with qualifiers

e depois esse:

org.jboss.weld.exceptions.UnsatisfiedResolutionException: WELD-001308: Unable to resolve any beans for Types:

consegui uma solução para os mesmo.

   Primeiro vou explicar o problema:
   Isso ocorre porque a task :build do gradle cria dois diretórios separados para compilação e os resources (build/classes and build/resources). Apenas quando cria o arquivo JAR esses dois diretórios são mesclados. A tarefa :run entretando inicia a aplicação diretamente do diretorio de compilação com os dois classpath para classes e resources.

  O mecanismo do Weld aparentimente tenta descobrir os beans apenas do mesmo classpath que se encontra o arquivo META-INF/beans.xml. Que nesse caso é o diretório build/resources/main. Sendo assim nenhum bean será descoberto e nunca estaram elegível para injeção.

  Para isso temos que fazer uma alteração no build.gradle para que o weld consiga trabalhar como deveria.

sourceSets.main.resources { exclude 'META-INF/beans.xml' }
classes {
inputs.dir 'src/main/resources/META-INF/beans.xml'
outputs.dir "$buildDir/classes/main/META-INF/beans.xml"
} << {
copy {
from('src/main/resources') { include 'META-INF/beans.xml' }
into "$buildDir/classes/main/"
}
}


com isso o beans.xml será copiado para o local onde o Weld consiga encontrar todos o beans. O mesmo deve ser feito para os testes caso contrario os testes continuaram quebrando.

sourceSets.test.resources { exclude 'META-INF/beans.xml' }
classes {
inputs.dir 'src/test/resources/META-INF/beans.xml'
outputs.dir "$buildDir/classes/test/META-INF/beans.xml"
} << {
copy {
from('src/test/resources') { include 'META-INF/beans.xml' }
into "$buildDir/classes/test/"
}
}


pronto com isso consegui resolver essas duas exceptions que me deram muita dor de cabeça. Espero ter ajudado alguém.

fontes: https://discuss.gradle.org/t/application-plugin-run-task-should-first-consolidate-classes-and-resources-folder-or-depend-on-installapp-or-stuff-like-weld-se-wont-work/1248
http://stackoverflow.com/questions/30255760/bean-discovery-problems-when-using-weld-se-with-gradle-application-plugin