Instalação e configuração manual do MySQL no Windows
Escrito por Carlos B. Feitoza Filho | |
Categoria: Artigos | |
Categoria Pai: ZØST | |
Acessos: 23541 |
Apesar de este artigo tratar da instalação manual e configuração do MySQL em ambiente Windows, nada impede que o leitor execute os mesmos passos no Linux, alterando, claro, comandos e caminhos utilizados aqui. Por falar em Windows, eu optei por expor a instalação e configuração em um ambiente Windows de 32 bits, mas você pode, com toda certeza, realizar o mesmo procedimento em um Windows de 64 bits. Esteja avisado, entretanto, que os binários usados neste artigo são todos de 32 bits também. Caso queira fazer uma instalação totalmente 64 bits (MySQL 64 bits e em Windows 64 bits) baixe a versão correta do MySQL diretamente em seu site.
O passo-a-passo
- Baixe a versão em zip do MySQL diretamente em seu site. Por exemplo, a versão que estou usando neste artigo é esta:
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-win32.zip
Este arquivo tem cerca de 300MB e contém tudo que é necessário para executar uma instância do MySQL em qualquer computador com Windows. Ele contém, inclusive, tudo que é necessário para a execução do MySQL Embedded, no entanto, este não é o foco deste artigo e não será mais mencionado. Caso queira saber mais sobre o MySQL Embedded, leia o artigo "Configurando e usando o MySQL Embedded". - Crie uma estrutura de pastas para o MySQL. Como estou instalando uma versão de 32 bits eu costumo chamar a pasta do MySQL de MySQLx32, mas fica a seu critério dar o nome que bem entender a esta pasta. Você inclusive pode colocar a estrutura interna de pastas, dentro da pasta de uma de suas aplicações, coisa que eu não recomendo de jeito nenhum por motivos de organização. O ideal é criar a pasta do MySQL em um local que sofra backups periódicos (um segundo HD, por exemplo). Em suma, crie uma estrutura de pastas semelhante a da imagem abaixo:
A pasta bin, conterá todos os executáveis que o MySQL utiliza para funcionar, dentre eles está o mysqld.exe, que é nada mais nada menos que o próprio servidor do MySQL. É este executável que é carregado como serviço do Windows. Nesta pasta também existem outros executáveis importantes para a manutenção do MySQL. Um que merece menção é o mysqldump.exe, que é a ferramenta que pode ser usada para realizar backups e recuperações de bancos de dados específicos do MySQL.
A pasta data é a pasta onde ficam todos os seus bancos de dados registrados no MySQL. Ao contrário de alguns outros bancos de dados, o MySQL não guarda os dados em um único arquivo por banco. Ele tem uma estrutura própria que coloca os dados de todos os bancos de dados em um único arquivo e as estruturas das tabelas em pastas distintas, por exemplo. Tudo isso fica dentro da pasta data, juntamente com outros arquivos de suporte. Você não precisa se preocupar com o conteúdo desta pasta, apenas entenda que seus dados estão dentro dela de uma forma opaca, isto é, você não consegue ver as informações de forma simples, apenas usando o próprio MySQL que "sabe" como ler tais arquivos. Se você tem um sistema de backup de pastas a recomendação é realizar o backup da pasta completa do MySQL (no caso MySQLx32), no entanto, o backup apenas da pasta data é suficiente para proteger os dados de todos os bancos.
A pasta share contém basicamente arquivos com as mensagens de erro do MySQL em vários idiomas e os arquivos de mapeamento de charsets. Se você não pretende, por exemplo, exibir mensagens de erro em vários idiomas, você pode manter apenas a pasta de um idioma, portuguese por exemplo e ter apenas a exibição de mensagens de erro em português após a configuração correta do MySQL. Eu recomendo que se mantenha o conteúdo desta pasta completo, pois estamos tratando da instalação do MySQL como um SGDB completo e não em sua forma "embedded", onde os requisitos de espaço são mais restritivos. A pasta completa ocupa menos de 4MB. Tal como a pasta data, não se preocupe com seu conteúdo, normalmente ele não precisa ser manipulado.
- A partir do arquivo zip baixado no passo 1, copie o conteúdo da pasta bin para a pasta bin de sua estrutura de pastas. Não é necessário copiar todos os arquivos, apenas os arquivos .exe e .dll. Copie o conteúdo completo da pasta share para a pasta share na sua estrutura de pastas. A pasta data de sua estrutura estará vazia mesmo. Os arquivos desta pasta serão criados posteriormente a partir da inicialização do MySQL e de forma automática!
- Crie o arquivo de configuração do MySQL dentro da pasta MySQLx32 e chame-o de my.ini. Este arquivo pode ser configurado de várias formas segundo suas necessidades. Para saber como alterar este arquivo, consulte a documentação online do MySQL. Eu disponibilizo em anexo uma cópia de um arquivo my.ini que você pode usar, no entanto você precisa personalizá-lo de forma mínima para que ele se adapte às suas necessidades. Os pontos de personalização necessários estão no início do arquivo e são:
basedir - Informe nesta configuração o caminho completo da pasta do seu MySQL usando duas barras invertidas ao invés de uma só. Eu recomendo que o caminho da pasta do MySQL não possua espaços. Não use a barra final. Exemplo: C:\\MySQLx32
datadir - Informe nesta configuração o caminho completo para a pasta data, a qual foi criada no passo 2. Novamente, use duas barras invertidas ao invés de uma só. Recomendo, novamente, que o caminho desta pasta não possua espaços. Não use a barra no final. Exemplo: C:\\MySQLx32\\data
port - Informe nesta configuração a porta usada pelo MySQL. O padrão é 3306, eu costumo usar 3307 para o MySQL de 32 bits e 3308 para o MySQL de 64 bits apenas por convenção, pois pode haver casos onde eu precise ter o controle completo de uma instância do MySQL e no caso da existência de um outro MySQL na mesma máquina, a possibilidade de conflito será minimizada ao usar estas portas já que, normalmente, as instalações do MySQL estão sempre na porta 3306. Neste artigo eu estou usando a porta 3309 como exemplo.
Para entender o que outras configurações fazem, basta procurar no Google, por exemplo, mysql character-set-server, para saber o que a configuração character-set-server faz. Os primeiros links dos resultados levam a documentação online do MySQL. - Coloque a pasta bin da estrutura de pastas no path de sistema do Windows, por exemplo, se a pasta do MySQL for C:\MySQLx32, coloque no path exatamente isso: C:\MySQLx32\bin. Este passo é muito importante para que a inicialização do MySQL aconteça sem problemas. Se seus sistema possuir mais de uma instância do MySQL, pode ser que haja problemas ao iniciar o serviço do MySQL por conta de diferenças entre binários que estão no path. Este tipo de problema não gera qualquer entrada no log do MySQL (mysql.err na pasta data). Se por algum motivo o serviço do MySQL não executar e retornar um código de erro 1067, pode ser que seja necessário substituir no path do sistema uma possível entrada de uma outra pasta bin para a pasta bin da instalação que você está tentando fazer.
- Usando um prompt de comando ou programaticamente, execute a seguinte linha de comando, considerando que a pasta do MySQL é C:\MySQLx32:
mysqld --defaults-file=C:\MySQLx32\my.ini --initialize-insecure
Este comando vai inicializar a pasta data com as tabelas do sistema e criar um usuário root@localhost sem senha. Obviamente você deverá alterar a senha do usuário root. Isso vai ser citado posteriormente. O parâmetro --defaults-file indica o local do arquivo my.ini, criado no passo 4. - Usando um prompt de comando ou programaticamente, execute a seguinte linha de comando, considerando que a pasta do MySQL é C:\MySQLx32:
mysqld --install MySQLx32 --defaults-file=C:\MySQLx32\my.ini
Este comando vai instalar o serviço do MySQL. Após o parâmetro --install está o nome do serviço do MySQL e você pode usar qualquer nome, desde que este não seja igual ao nome de algum outro serviço instalado. O parâmetro --defaults-file indica o local do arquivo my.ini, criado no passo 4. Este comando faz a instalação do serviço de forma que ele seja inicializado automaticamente quando o Windows iniciar. Caso este comportamento não esteja correto para você, altere as propriedades do serviço usando a ferramenta services.msc do próprio Windows. - Usando um prompt de comando ou programaticamente, execute a seguinte linha de comando, considerando que o nome do serviço escolhido no passo 7 foi MySQLx32:
net start MySQLx32
Este comando do próprio Windows inicia o serviço que foi instalado no passo 7.
Neste momento deve haver uma instância funcional do MySQL, escutando na porta definida no arquivo my.ini. Esta instância já está aceitando conexões, mas antes de fazer qualquer coisa, é melhor alterar a senha do usuário root, o qual foi criado sem senha no passo 6. Para fazer isso é muito simples:
- Abra um prompt de comando, mude para a pasta bin da estrutura de pastas criada e digite o seguinte comando:
mysql -u root -P 3309
Este comando vai conectar ao MySQL na porta 3309 com o usuário root. Troque a porta, caso a sua seja outra. A conexão será estabelecida, sem senha, já que inicialmente o usuário root não tem senha. O prompt vai mudar para MySQL>, indicando que você está conectado ao MySQL e que você pode digitar comandos do MySQL. - No prompt do MySQL (MySQL>) digite o seguinte comando:
set password for 'root'@'localhost' = '123456';
Este comando vai configurar a senha 123456 para o usuário root. Não se preocupe com a segurança da senha; se seu MySQL tem versão maior ou igual a 5.7.6 esta senha será salva de forma criptografada, portanto, procure baixar uma versão maior que esta, só para garantir, do contrário você terá que usar a função Password(), que foge do escopo deste artigo.
Conclusão
Sim, lendo o artigo por alto pode parecer que é muito complexo, mas entenda que o artigo é didático. Quando você executar os passos e entender o que está fazendo, vai perceber que é uma simples "receita de bolo". Tudo que foi explicado aqui pode ser automatizado de alguma forma, assim você pode usar seus sistema de instalação para instalar uma instância do MySQL sem qualquer problema!
Sobre o MariaDB
Nunca usei o MariaDB, só sei que ele é como uma versão totalmente free do MySQL e que é muito semelhante a este. Não posso afirmar se os passos apresentados aqui podem ser usados no MariaDB, mas eu apostaria que sim, claro, com algumas mudanças (ou não!). Sinta-se a vontade para tentar realizar estes procedimentos no MariaDB e não deixe de compartilhar seus resultados com todos. Pode fazer isso nos comentários abaixo do artigo :)