Programação, diversão e arte. Por Ricardo Giaviti
Posts tagged mysql
Rails 3 e ainda o problema com o MySQL no Windows
Jul 30th
No dia 10/03/2009 postei uma solução de como acabar com um erro muito chato de conexão entre o Rails 2.2.2 e o MySQL em ambientes Windows. Aliás, esse é um dos posts mais “populares” aqui do blog. O erro naquela ocasião era o seguinte:
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql. rake aborted! 126: The specified module could not be found. - c:/ruby/lib/ruby/gems/1.8/gems/mysql-2.7.3-x86-mswin32/ext/mysql.so (See full trace by running task with --trace)
Hoje, fui instalar o Rails 3 Beta 4 e gostaria de usa-lo com o MySQL e não com o SQLite (padrão do Rails hoje). Tudo isso rodando em ambiente Windows XP SP3. Então lá fui eu. Instalei o Ruby 1.9.1, Instalei o RubyGems, instalei o Rails 3 Beta 4 e todas suas dependências, o banco MySQL e por fim, instalei a gem do mysql usando o seguinte comando:
gem install mysql
Nesse ponto, chego a conclusão de que está tudo pronto! Basta iniciar o desenvolvimento da aplicação! Engano meu! No primeiro migrate que fui rodar usando o comando:
rake db:migrate
Me aparece o seguinte erro:
(in D:/DEV/Ruby/AppTeste) rake aborted! Mysql::Error: query: not connected: CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB (See full trace by running task with --trace)
A mensagem é diferente daquele primeiro erro postado em 10/03/2009, porém a solução é idêntica! Basta baixar a versão antiga do libmySQL.dll e colocar esse arquivo na pasta C:\Ruby\bin (ou qualquer outra pasta que seu Ruby estiver instalado), reiniciar o MySQL e executar o migrate de novo. Feito isso o migrate vai rodar tranquilo!
Você pode baixar o libmySQL.dll aqui ou aqui. O segundo link é um link próprio do blog e o primeiro é do InstantRails.
A solução é relativamente simples, o que me surpreende é a persistência desse erro. É um dos erros mais populares para quem desenvolve em Rails com MySQL em ambientes Windows e ainda não foi corrigido. Uma pena!
Enjoy!
Montando ambiente completo Windows + Apache + PHP + MySQL com XAMPP
Jul 26th
Montar um ambiente de desenvolvimento do zero usando o Windows, Apache, PHP e o MySQL sem nenhum pacote pronto, não é tão trivial. Por isso existem esses pacotes prontos que fazem todo o serviço de instalação e configuração para nós e ainda nos fornecem ferramentas úteis.
Uma dessas ferramentas e a melhor que encontrei até agora é o XAMPP. Esse pacote nos fornece um conjunto de ferramentas prontas para nos auxiliar no desenvolvimento de PHP com MySQL. Dentre as ferramentas oferecidas estão:
- Servidor web Apache;
- Banco de dados MySQL;
- Interpretador PHP versão 5 e 4;
- PHPMyAdmin – Administração do MySQL;
- Painel de controle para iniciar e parar os serviços;
- Perl;
- Tomcat – Instalação via add-on;
Existem muito mais coisas que estão disponíveis no site oficial. Visite o site para ter mais informações sobre o que vem mais com o pacote.
Para baixar, acesse o site e baixe a versão .EXE auto-installer. Com essa versão basta clicar Install e você terá seu XAMPP instalado.
A instalação é um pouco demorada. Relaxe. É assim mesmo!
Após a instalação, irá aparecer uma tela de console perguntando se você deseja adicionar atalhos no menu iniciar e na área de trabalho. Aqui você precisará digitar “y” para sim e “n” para não. Sem aspas, claro. Digite sua resposta e tecle Enter.
Depois dessa pergunta, haverá mais uma pergunta em console que você terá que responder “y”. Na outra questão que irá aparecer, será perguntado se você quer transformar o XAMPP em portátil colocando ele em pen-drives. Não é nosso caso, sendo assim, responda “n”.
Feito isso, está quase tudo pronto. O instalador fará alguns procedimentos e levará você para uma outra tela de console onde haverá um menu com várias opções. A única opção que nos interessa, por enquanto, é a opção 1 – Start XAMPP Control Panel. Essa opção iniciará o painel de controle do XAMPP. Nesse painel de controle podemos iniciar o servidor apache e o MySQL por exemplo.
Abaixo está uma figura do Painel de controle do XAMPP. Clique em START para o Apache e para o MySQL. Os dois serviços iniciará e aparecerá a informação Running, ao lado e em verde. Isso significa que os serviços de banco de dados e servidor apache estão rodando.
Feito isso, tudo está pronto. Só vamos validar a instalação abrindo qualquer navegador e digitando na barra de endereço: http://localhost.
Navegador:
Agora, para começar a desenvolver, basta colocar seus scripts PHP em htdocs, que fica dentro da pasta de instalação do Xampp.
Enjoy!
Problema do Rails 2.2.2 com o MySQL em Windows
Mar 10th
Desde que a versão 2.2.2 do Rails foi lançada, alguns problemas relacionados ao driver do MySQL, que conectava a aplicação Rails ao banco, começaram a surgir e incharam lista de discussões com relatos de problemas. Um desses problemas era que quando vamos executar o rake db:migrate ocorre um erro que apresentava a seguinte mensagem:
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql. rake aborted! 126: The specified module could not be found. - c:/ruby/lib/ruby/gems/1.8/gems/mysql-2.7.3-x86-mswin32/ext/mysql.so (See full trace by running task with --trace)
Acredito que se você tem esse problema você já deva ter instalado o gem do MySQL e mesmo assim continuou tendo esse problema. Caso você não tenha instalado o gem, por favor faça:
gem install mysql --no-rdoc --no-ri
Feita a instalação, veja se na lista de gems instaladas, se encontra o MySQL. Para ver suas gems instaladas:
gem list --local
O gem do MySQL deverá estar instalado.
Bem, se você tentar rodar o migrate denovo, provavelmente terá o mesmo problema. Pesquisando pelas partes mais distantes da internet encontrei uma solução que dizia para copiar e colar o arquivo <MYSQL_HOME>/bin/libmysql.dll para pasta <RUBY_HOME>/bin. Mas isso tem um porém. Se sua versão do MySQL instalado for a 5.1 o problema continuará.
Você terá que copiar o libmysql.dll do MySQL 5.0. No link abaixo você poderá fazer o download da versão correta do libmysql.dll pra usar:
http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll
UPDATE 16/07/2010: Você pode baixar o dll por aqui também (Nunca sabemos quando um link ou arquivo sairá do ar!):
http://www.meupost.com/files/libmySQL.dll
Copie o libmysql.dll do link acima para a pasta <RUBY_HOME>/bin. Feito isso, tente novamente executar o migrate e verás que agora funciona!
Como conectar o Java ao MySQL usando o NetBeans
Nov 25th
Pessoal, resolvi fazer esse artigo ensinando como se conectar a uma base de dados MySQL usando o Java porque vi que é uma dificuldade muito comum entre as pessoas que estão iniciando em programação. Espero que esse artigo ajude a todos que estão com essa dificuldade a sanarem suas dúvidas,
Esse artigo parte do pressuposto de que quem for seguir esse tutorial tenha o JDK (Java Development Kit) instalado assim como o MySQL e o NetBeans. Caso você não tenha nenhum deles, você pode baixar e instalar a partir dos sites oficiais. Abaixo segue os sites de cada um deles:
Para esse tutorial eu estou usando o JDK6, MySQL 5.0 e o NetBeans 6.5 rodando tudo em cima do Ubuntu 8.10 Intrepid Ibex.
O NetBeans possui algumas “facilidades” de conexão a banco de dados bem ao estilo “Next > Next > Ok”. Porém o tutorial foi feito na maneira tradicional.
Após tudo instalado hora de começar a colocar a mão na massa. O Java para se conectar a qualquer banco de dados precisa de um driver de conexão, esse driver é chamado de JDBC (Java Database Connectivity). Sem um JDBC não é possível fazer uma conexão a um banco de dados. Cada banco de dados possui seu próprio JDBC. Por exemplo a Oracle fornece um JDBC para ser usado em bancos Oracle, o PostGRESQL também fornece um JDBC para ser usado com o PostGRESQL e assim vai. Não é diferente com o MySQL. O pessoal do MySQL também disponibilizou um JDBC para ser usado em conexão Java – MySQL.
Um pouquinho mais de informação sobre os drivers JDBC pode ser encontrado aqui na Wikipedia.
Como o MySQL também nos fornece um JDBC, vamos baixa-lo do site oficial do MySQL. Endereço do JDBC é: http://dev.mysql.com/downloads/. No menu, clique em Connectors e depois em Connector/J. Agora é só fazer o download do JDBC. Feito o download descompacte o arquivo.
Vai ser descompactado vários arquivos como instruções e documentações mas o arquivo que nos interessa é um que termina com extensão .JAR. Até a finalização desse artigo o nome do JDBC do MySQL é mysql-connector-java-5.1.7-bin.jar
Esse é o JDBC que irá nos conectar a uma base MySQL. Guarde a localização desse arquivo. Agora vamos criar um banco de exemplo com alguns dados.
Se conecte ao MySQL com sua ferramenta favorita ou pelo console mesmo. Para esse artigo eu criei um banco com uma tabela e três colunas. Tudo bem simples. Se quiser seguir esse exemplo abaixo vai os script SQL para a criação. Basta rodar no banco. Fique a vontade para fazer o esquema de banco a sua maneira, só lembre de mais para frente no artigo adaptar o seu esquema de banco ao código.
Script SQL:
CREATE TABLE IF NOT EXISTS 'usuarios' ( 'nome' varchar(50) NOT NULL, 'email' varchar(50) NOT NULL, 'idade' int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO usuarios (nome, email, idade) VALUES ('Ricardo', 'ricardo@meuemail.com', 23), ('José', 'jose@seuemail.com', 29);
Beleza! Banco criado e alguns dados inseridos. Vamos para o NetBeans!
Abra a NetBeans e teremos uma tela inicial parecida com essa:
Vamos criar nosso projeto. Para isso faça:
- Arquivo > Novo Projeto;
- Escolha categoria: Java. Projeto: Aplicativo Java;
- Clique em Próximo;
- Coloque um nome para o projeto e clique em finalizar;
Próxima tela após clicar no botão Próximo. Aqui é onde definiremos o nome para o projeto e mais algumas configurações.
Nosso projeto foi criado.
Agora vamos adicionar o driver JDBC para que nossa aplicação consiga se conectar ao Banco de Dados. Para isso:
- Clique com o botão direito em cima do Projeto > Propriedades.
- Selecione a opção Bibliotecas e clique no botão Adicionar JARs/pasta.
- Vá até o JDBC que baixamos do site do MySQL selecione o arquivo .jar
- Clique em OK > OK
Pronto. O JDBC já foi adicionado a nossa aplicação. Agora vamos fazer um pouco de código
Nós iremos fazer toda a conexão com banco de dados direto da classe principal que o NetBeans nos forneceu. Logicamente essa metodologia não segue as melhores práticas da programação e todo o resto, mas serve para você ter uma idéia de pelo menos como conectar sua aplicação a uma base MySQL.
O código gerado pelo NetBeans está assim:
package mysqlconnection; public class Main { public static void main(String[] args) { //Nosso código vai aqui } }
Vamos criar a conexão e vamos fazer um select básico no banco. Abaixo segue o código com a conexão, com o envio do select e o tratamento de exceção. O código está comentado com o que cada linha está fazendo:
package mysqlconnection; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Main { public static void main(String[] args) { String driver = "com.mysql.jdbc.Driver"; //Classe do driver JDBC String banco = "MeuBD"; //Nome do Banco criado String host = "localhost"; //Maquina onde está o banco String str_conn = "jdbc:mysql://" + host + ":3306/" + banco; //URL de conexão String usuario = "root"; //Usuário do banco String senha = ""; //Senha de conexão try { Class.forName(driver); //Carrega o driver //Obtém a conexão com o banco Connection conn = DriverManager.getConnection(str_conn, usuario, senha); //Cria um statement para podermos mandar um SQL para o banco Statement stmt = conn.createStatement(); //Mandamos o SQL para o banco e obtemos um ResultSet String sql = "SELECT * FROM usuarios"; ResultSet rs = stmt.executeQuery(sql); //Percorrendo o ResultSet e obtendo os valores do banco while (rs.next()) { System.out.println(rs.getString("nome")); System.out.println(rs.getString("email")); System.out.println(rs.getInt("idade")); System.out.println("===================================="); } } catch (ClassNotFoundException ex) { System.out.println("Não foi possível carregar o driver."); ex.printStackTrace(); } catch (SQLException ex) { System.out.println("Problema com o SQL"); ex.printStackTrace(); } } }
Repare que na obtenção dos objetos a partir do ResultSet nós usamos como chave o nome da coluna no banco de dados.
Se estiver tudo certo, já podemos executar nosso código. Para isso faça aperta F6 ou clique no “Play”. Se tudo deu certo e se você utilizou o esquema de banco fornecido nesse post, a saída para console será assim:
run: Ricardo ricardo@meuemail.com 23 ==================================== José jose@seuemail.com 29 ==================================== CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
Bacana hein?!
É isso pessoal, fizemos uma conexão bem simples a uma base de dados MySQL usando Java e JDBC. Espero que tenham gostado do artigo e até a próxima!










Recent Comments