... Assinatura do site por 3 anos + Kit MontaRibbons + 3 Livros em PDF + Diversas Revistas (pdf) de brinde, por apenas R$145,00
(
podendo parcelar em até 10 vezes no cartão de crédito)...

Clique aqui e obtenha mais detalhes do nosso kit completo e de como comprar.


Convertendo base de dados MS Access para MySQL

De Jefferson Braz

Nesse tutorial irei explicar como converter uma base de dados Access para o MySQL.

Para realizarmos a conversão utilizaremos o Bullzip MS Access to MySQL. Ele é um aplicativo que analisará a estrutura do seu banco de dados e reconstruirá a mesma em um banco de dados MySQL.   Eu utilizo muito esse aplicativo, pois além de ser um dos melhores e com um funcionamento simples, ele é gratuito.

O aplicativo suporta versões de banco de dados da versão 2000 (formato .mdb) à versão 2010 (formato .accdb).  A conversão não foi testada em arquivos da versão 2013, mas tudo indica que terá o respectivo suporte.

Considerando que o aplicativo irá reconstruir as tabelas, os campos serão parametrizados com base na estrutura do MySQL, como melhor se assemelham.

Por exemplo:

Se você utiliza o tipo de campo Dados Múltiplos no MS Access, é bom saber que esse tipo de campo não é suportado por outros tipos de bancos de dados, como o SQL Server e o MySQL (pelo menos não, até o momento em que escrevi esse artigo).   Assim sendo, ele converterá esse tipo de campo para o tipo Varchar que é um campo do tipo binário.  O mesmo ocorrerá com o campo do tipo Anexos que permite anexar mais de um tipo de arquivo.  No MySQL, ele será convertido para o campo do tipo Blob long que corresponde ao campo do tipo OLE do Access.

Assim, antes de fazermos a conversão, é bom conhecer os tipos de campos que o MySQL suporta para saber como o seu banco de dados vai se comportar e não ter surpresas quanto ao funcionamento da sua aplicação.

Clique aqui para acessar o site RCOLI e veja o detalhamento de campos e suas características.

Neste tutorial, não abordarei sobre a normatização de um banco de dados.  Parto do pressuposto que ao construir o seu banco de dados, você tenha levado em consideração, as práticas do bom desenvolvimento.  Caso contrário, você não terá um bom desempenho na conversão, devendo ter que fazer os ajustes manuais necessários.

Então, vamos lá!

Execute o Bullzip MS Access to MySQL. A janela abaixo será exibida.

t65

Clique em Next para iniciar a configuração de conversão.

Nota: Load Settings permite carregar dados de uma conversão que já foi iniciada.

O primeiro passo é informar qual o banco de dados será convertido. Poderá ser um arquivo no formato .mdb ou .accdb.

No entanto, se um arquivo .mdb  estiver protegido em Nível de Segurança de Usuário por um arquivo .mdw, algumas configurações deverão ser feitas:

Filename: selecione o arquivo a ser convertido

System DB: selecione o arquivo .mdw,  se o seu .mdb for protegido

Username: usuário do arquivo .mdw

Password: senha do banco de dados.

Ressalto que essas configurações são somente para arquivos .mdb protegidos a Nível de Usuário.

Clique em Next para prosseguir.

t65O próximo passo consiste em definir os dados do banco de dados MySQL:

Marque o método Direct transfer e na combobox Storage Engine, selecione a opção MyISAM e defina as seguintes configurações:

Host: host do banco de dados ou ip

Port: porta em que o MySQL foi configurado

Username: usuário do banco de dados

Password: senha do banco de dados

Database: nome da base de dados

t65

Agora, basta informar as tabelas que serão convertidas.

Para isso é só clicar no seletor, a frente do nome da tabela.

À direita do painel, temos o botão Select All que permite selecionar todas as tabelas do seu banco de dados.

Após a seleção das tabelas, clique em Next para continuar.

t65

Agora, definiremos as opções de transferências:

Se você já subiu alguma tabela para o banco de dados e deseja que a mesma seja recriada, assinale a opção Drop and recreat destination database.  Esse comando permite que a tabela seja excluída e recriada novamente. Utilize essa opção, somente nesse caso, pois do contrário haverá  risco de alterar estruturas em sua base de dados, sem que você queira.

Assinale as seguintes opções:

Transfer indexes:  transfere os índices criados em sua base de dados. Contudo, vale destacar que conforme pude observar em alguns testes que fiz, nem sempre uma chave primária é recriada como chave primária. Logo, o programador precisa realizar esse procedimento manualmente. Isso será abordado em um próximo tutorial, aonde falaremos do MySQL-Front;

Transfer records: transfere os registros das tabelas.  Em algumas situações os dados podem não ser transferidos, pois as estruturas de índices e chave não são recriadas no momento da conversão. Caso isso ocorra, desmarque essa opção e tente novamente;

Include column list in insert statements: inclui a lista de colunas na instrução de inserção;

Create tables: cria as tabelas selecionadas;

Unicode (utf-8): codifica os caracteres que serão utilizados no armazenamento das informações. Essa opção influencia como o MySQL irá tratar os caracteres, como ç e acentuações;

Após informar as configurações desejadas, clique em Run Now para iniciar a conversão.

t65

Em seguida será exibido o Resultado de Conversão informando se houve algum erro ou se o processo foi realizado corretamente:

t65Para armazenar um script das operações realizadas, clique em Save Settings

t65

Uma vez que o seu banco de dados tenha sido convertido, você poderá acessá-lo através do seu front-end MS Access.

O acesso ao banco de dados poderá ser feito de duas maneiras:

Via ADO/DAO: para acessar o seu banco de dados, via ADO/DAO, clique aqui

Via ODBC: para acessar o seu banco de dados, via ODBC, clique aqui

Espero que tenham gostado desse artigo.

No próximo tutorial, iremos demonstrar como trabalhar com o MySQL-Front.

YouTube

Clique aqui e visite o canal da Kartoffel no YouTube.


 

Jeferson Braz é programador em MS Access e Visual Basic com mais de 17 anos de experiência. 
 
Diretor de Desenvolvimento da Kartoffel Desenvolvimento de Sistemas Ltda, empresa especializada 
em Microsoft Access e CMS Joomla.  
 
Atua no mercado de desenvolvimento de aplicações customizáveis, realizando integração MS Access 
à base de dados Web e a Websites, suporte e manutenção. 
 
http://www.kartoffel.com.br

 


 

 


7 comentários

Junior Wano   24/10/2014 14:11:16

Avelino e Jeferson,

Fico-lhes muito agradecido, excelente material e me será de grande utilidade.

Abç.

Idiframk Silva   25/10/2014 10:52:13

Muito Bom Seus ensinamentos, agradeço muito você por meus conhecimento que voce nos proporcionou!

Luiz Galvão   27/10/2014 12:43:06

Utilizar o banco de dados MYSQL com front-end em Access ,é recomendável para um aplicativo?
Qual seria a vantagem de utilizar o MYSQL ao invés do próprio banco do Access ?

em tempo: Excelente site com dicas de grande utilizada

JBSR   27/10/2014 13:48:03

Prezado Luiz

Gostaria de lembrar do enunciado dos artigos: Acessando dados da Web com o Access

Não é possível uma conexão access x web com um mdb. Nem através do SharePoint isso é possível, pois o sharepoint converte o mdb em sql server.

Segue abaixo, respostas as suas respostas com base no enunciado.


Utilizar o banco de dados MYSQL com front-end em Access ,é recomendável para um aplicativo? Sim, pois você trabalhar com uma aplicação conectado a um banco de dados robusto.
Qual seria a vantagem de utilizar o MYSQL ao invés do próprio banco do Access ? Inúmeras, principalmente para criação de aplicativos com conexão web, que não seria possível através de um .mdb/accdb. Você só consegue criar uma aplicação web/desktop através de banco de dados robustos, como o Mysql, SQL, etc, através de um ODBC local com uma base web, procedimento esse, não possivel com um banco de dados access.

Sergio   27/10/2014 15:03:20

Parabéns pelo trabalho, ja namorei muito migrar meu banco para mysql e percebi nos foruns que é um assunto que sempre esta presente. Então estas informações são extramente uteis.
Quando fiz a migração o meu banco ficou muito lento e tive várias dificuldades na hora de gravar os dados(front access / back mysql) e como meu banco esta funcionando bem, não estudei mais a sério o caso.
Realmente meus parabéns.
Abraços

Marcio Melo   28/10/2014 11:49:51

Show, gostei muito desse artigo... Estou finalizando a configuração de um server 2008 para estudar melhor sobre MySql rodando na rede local que tem um desempenho muito superior a web e com o front em access já constatei que roda igualmente em termo de velocidade aos vínculos com accdr. Uma questão que vou reavaliar é dos vínculos OBDC que se perdem. Obrigado por mais esse artigo de grande importância...

Forte abraço!

Adriana Lopes   07/02/2017 16:32:07

Olá. Muito bacana seu artigo. Utilizei um aplicativo para realizar esse processo chamado FullCopyConvert. www.fullcopyconvert.com.br.


Envie seu comentário: