Neste post iremos ver quais pré-requisitos necessitam ser checados para rodar o processo servidor no Windows. Também iremos ver como executar o processo manualmente a partir da linha de comando ou como executa-lo como um serviço.

Pré-requisitos para iniciar o processo servidor no Windows:

Deve-se saber onde o MySQL está instalado, pois o diretório de instalação contém vários sub-diretórios importantes. Se durante a instalação forem utilizadas as releases Essentials ou Complete, o instalador por padrão utiliza o caminho C:Program FilesMySQLMySQL Server 5.0. Se for utilizada uma release No-install (.zip) a instalação será onde você descompactar o arquivo.

Abaixo do diretório de instalação existe uma pasta bin que contém os programas servidor e cliente do MySQL e um diretório chamado data onde o processo servidor irá armazenar os database.

Para instalações MySQL no Windows o diretório data está pré-configurado e pronto para utilização. Por exemplo, é incluso um diretório mysql para o database mysql que contém as tabelas de grant, e um diretório test para um database para propósitos de teste. Após o startup do processo servidor, devem ser definidos passwords para as contas iniciais listadas na tabela de grants.

As distribuições MySQL Windows incluem vários processos servidores que podem ser encontrados no diretório bin, logo abaixo o diretório de instalação do MySQL:

  • mysqld é o processo servidor padrão. Inclui ambos mecanismos de armazenamento (engines) InnoDB e MyISAM.
  • mysqld-nt é igual ao mysqld mas inclui o suporte a “named pipes” em sistemas NT, como Windows NT, 2000, XP e 2003.
  • mysqld-max e mysqld-max-nt são iguais ao mysqld e ao mysqld-nt mas com opções extras como suporte para mecanismos de armazenamento extras que não estão inclusos nos processos servidores não -max.
  • mysqld-debug oferece o suporte para debug. Normalmente não é utilizado em produção pois utiliza mais memória.

Distribuições do tipo Essentials oferecem apenas os processos servidores mysqld e mysqld-nt.

Os comandos de exemplo abaixo utilizam o mysqld como processo servidor. Para utilizar um processo servidor diferente, faça as devidas substituições.

Quando você inicia o processo servidor no Windows, ele assume por default que a instalação está no C:mysql. Você pode instalar em qualquer outro lugar. Se optar por isso, o processo servidor precisa saber onde está instalado. Uma forma de se fazer isso é configurar um arquivo de opções (option file) que especifica além de outras coisas a localização do processo servidor.

  • O Wizard utiliza o diretório de instalação C:Program FilesMySQLMySQL Server 5.0, e cria um arquivo de opções denominado my.ini neste diretório. O arquivo de opções contém um grupo [mysqld] que inclui um parâmetro diretório base (base dir) que denomina este diretório:
[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”W215c3FsZF0KCmJhc2VkaXI94oCdQzovUHJvZ3JhbSBGaWxlcy9NeVNRTC9NeVNRTCBTZXJ2ZXIgNS4w4oCz” hover_enabled=”0″]W215c3FsZF0KCmJhc2VkaXI94oCdQzovUHJvZ3JhbSBGaWxlcy9NeVNRTC9NeVNRTCBTZXJ2ZXIgNS4w4oCz[/et_pb_dmb_code_snippet]

Note que no arquivo de opções as barras que identificam o caminho do diretório de instalação são invertidas.

  • O Wizard instala o processo servidor para que seja executado como um serviço no Windows, usando um comando que inclui uma opção –defaults-file para especificar o caminho do arquivo de opções my.ini:
[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”bXlzcWxkIOKAk2luc3RhbGwgTXlTUUwg4oCTZGVmYXVsdHMtZmlsZT3igJ1DOlByb2dyYW0gRmlsZXNNeVNRTE15U1FMIFNlcnZlciA1LjBteS5pbmnigJ0=” hover_enabled=”0″]bXlzcWxkIOKAk2luc3RhbGwgTXlTUUwg4oCTZGVmYXVsdHMtZmlsZT3igJ1DOlByb2dyYW0gRmlsZXNNeVNRTE15U1FMIFNlcnZlciA1LjBteS5pbmnigJ0=[/et_pb_dmb_code_snippet]

Desta forma, quando o serviço MySQL inicia, o processo servidor sabe onde encontrar o arquivo de opções my.ini, que por sua vez especifica onde está o diretório de instalação.

Se você utilizar o Wizard para instalar o MySQL mas quer utilizar um processo servidor diferente do mysqld para o serviço MySQL, será necessário remover o serviço e instalar novamente usando um nome diferente de processo servidor. Isso será abordado mais adiante.

Executando o processo servidor manualmente no Windows

Para executar um processo servidor MySQL no Windows manualmente a partir da linha de comando, navegue até o bin, abaixo do diretório de instalação do MySQL e execute o comando como está abaixo:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”c2hlbGw+IG15c3FsZA==” hover_enabled=”0″]c2hlbGw+IG15c3FsZA==[/et_pb_dmb_code_snippet]
[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”UG9yIHBhZHLDo28sIGFzIG1lbnNhZ2VucyBkZSBlcnJvIHPDo28gZXNjcml0YXMgbm8gYXJxdWl2byBob3N0X25hbWUuZXJyIG5vIGRpcmV0w7NyaW8gZGUgZGFkb3MsIG9uZGUgaG9zdF9uYW1lIMOpIG8gbm9tZSBkbyBzZXJ2aWRvciBvbmRlIGVzdMOhIHNlbmRvIGV4ZWN1dGFkbyBvIE15U1FMLiBTZSBvIHByb2Nlc3NvIHNlcnZpZG9yIG7Do28gaW5pY2lhciBkZXZpZGFtZW50ZSB2ZXJpZmlxdWUgbyBhcnF1aXZvIGRlIGVycm9zIHBhcmEgc2FiZXIgbyBwb3JxdWUuIENvbW8gYWx0ZXJuYXRpdmEsIG8gcHJvY2Vzc28gc2Vydmlkb3IgcG9kZSBzZXIgaW5pY2lhZG8gbm8gbW9kbyBjb25zb2xlOg==” hover_enabled=”0″]UG9yIHBhZHLDo28sIGFzIG1lbnNhZ2VucyBkZSBlcnJvIHPDo28gZXNjcml0YXMgbm8gYXJxdWl2byBob3N0X25hbWUuZXJyIG5vIGRpcmV0w7NyaW8gZGUgZGFkb3MsIG9uZGUgaG9zdF9uYW1lIMOpIG8gbm9tZSBkbyBzZXJ2aWRvciBvbmRlIGVzdMOhIHNlbmRvIGV4ZWN1dGFkbyBvIE15U1FMLiBTZSBvIHByb2Nlc3NvIHNlcnZpZG9yIG7Do28gaW5pY2lhciBkZXZpZGFtZW50ZSB2ZXJpZmlxdWUgbyBhcnF1aXZvIGRlIGVycm9zIHBhcmEgc2FiZXIgbyBwb3JxdWUuIENvbW8gYWx0ZXJuYXRpdmEsIG8gcHJvY2Vzc28gc2Vydmlkb3IgcG9kZSBzZXIgaW5pY2lhZG8gbm8gbW9kbyBjb25zb2xlOg==[/et_pb_dmb_code_snippet]
[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”c2hlbGw+IG15c3FsZCAtLWNvbnNvbGU=” hover_enabled=”0″]c2hlbGw+IG15c3FsZCAtLWNvbnNvbGU=[/et_pb_dmb_code_snippet]

Quando o processo servidor é chamado a partir da linha de comando o interpretador pode não disponibilizar mais a janela para execuções até que o processo servidor seja finalizado.

Para parar o processo servidor, utilize o mysqladmin a partir da linha de comando:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”c2hlbGw+IG15c3FsYWRtaW4gc2h1dGRvd24=” hover_enabled=”0″]c2hlbGw+IG15c3FsYWRtaW4gc2h1dGRvd24=[/et_pb_dmb_code_snippet]

Também é possível parar o processo através do gerenciador de processos (task manager). Evite utilizar esse método, pois força o término do processo servidor, não permitindo que seja feito um shutdown limpo. O resultado pode ser uma corrupção de dados que pode requerer reparos de tabela.

Executando o processo servidor como um serviço no Windows

Se você instalou uma distribuição Essentials ou Complete, você deve ter utilizado o Wizard para instalar e iniciar o serviço MySQL, caso contrário será necessário que você mesmo configure o MySQL como um serviço. Para isso, vá até a pasta bin, abaixo do diretório de instalação do MySQL. Execute o comando adicionando a opção –install, como segue:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”c2hlbGw+IG15c3FsZCAtLWluc3RhbGw=” hover_enabled=”0″]c2hlbGw+IG15c3FsZCAtLWluc3RhbGw=[/et_pb_dmb_code_snippet]

Se os diretórios de instalação (C:mysql) e de dados (C:mysqldata) não estiverem conforme o padrão de localização será necessário especificar sua localização no grupo [mysqld] no arquivo de opções. É necessário utilizar o arquivo de opções pois um processo servidor MySQL que roda como serviço Windows só lê os parâmetros de um arquivo de opções e não da linha de comando.

Também é possível especificar os parâmetros em um arquivo de sua escolha e dizer ao processo servidor que leia especificamente este arquivo. Por exemplo, usando o arquivo C:server-opts para as opções do processo servidor, a linha de comando se parecerá com isso:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”c2hlbGw+IG15c3FsZCAtLWluc3RhbGwgTXlTUUwgLS1kZWZhdWx0cy1maWxlPUM6c2VydmVyLW9wdHM=” hover_enabled=”0″]c2hlbGw+IG15c3FsZCAtLWluc3RhbGwgTXlTUUwgLS1kZWZhdWx0cy1maWxlPUM6c2VydmVyLW9wdHM=[/et_pb_dmb_code_snippet]

Quando você especifica um arquivo com o parâmetro –defaults-file o processo servidor lê somente opções do grupo [mysqld] dentro desse arquivo durante o startup e ignora as opções padrão.

O parâmetro –install não inicia o serviço, apenas cria o mesmo. O serviço será iniciado automaticamente quando o Windows for restartado ou de maneira manual podemos inicia-lo e para-lo da seguinte forma:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”c2hlbGw+IG5ldCBzdGFydCBNeVNRTAoKc2hlbGw+IG5ldCBzdG9wIE15U1FM” hover_enabled=”0″]c2hlbGw+IG5ldCBzdGFydCBNeVNRTAoKc2hlbGw+IG5ldCBzdG9wIE15U1FM[/et_pb_dmb_code_snippet]

No caso MySQL é o nome do serviço. Pode ser maiúsculo ou minúsculo. Para controlar o serviço MySQL utilize a ferramenta gráfica Gerenciador de Serviços (Windows Service Manager). É mostrada uma janela onde estão listados os serviços assim como opções para stop e start.

Também é possível parar o serviço manualmente a partir da linha de comando utilizando o mysqladmin shutdown.

Se o serviço não iniciar corretamente quando executado como serviço verifique o arquivo de erros no diretório de dados ou execute o processo servidor manualmente com a opção –console.

Para remover o serviço MySQL, pare o serviço caso o mesmo esteja sendo executado, e logo após execute o seguinte comando:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”c2hlbGw+IG15c3FsZCAtLXJlbW92ZQ==” hover_enabled=”0″]c2hlbGw+IG15c3FsZCAtLXJlbW92ZQ==[/et_pb_dmb_code_snippet]

Os comandos a seguir são baseados no uso de um serviço nomeado como MySQL. Para executar com um nome diferente, utilize comandos que especifiquem o nome explicitamente:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”c2hlbGw+IG15c3FsZCAtLWluc3RhbGwgbXlfc2VydmljZQoKc2hlbGw+IG15c3FsZCAtLWluc3RhbGwgbXlfc2VydmljZSAtLWRlZmF1bHRzLWZpbGU9QzpzZXJ2ZXItb3B0cwoKc2hlbGw+IG15c3FsZCAtLXJlbW92ZSBteV9zZXJ2aWNlCgpzaGVsbD4gbmV0IHN0YXJ0IG15X3NlcnZpY2UKCnNoZWxsPiBuZXQgc3RvcCBteV9zZXJ2aWNl” hover_enabled=”0″]c2hlbGw+IG15c3FsZCAtLWluc3RhbGwgbXlfc2VydmljZQoKc2hlbGw+IG15c3FsZCAtLWluc3RhbGwgbXlfc2VydmljZSAtLWRlZmF1bHRzLWZpbGU9QzpzZXJ2ZXItb3B0cwoKc2hlbGw+IG15c3FsZCAtLXJlbW92ZSBteV9zZXJ2aWNlCgpzaGVsbD4gbmV0IHN0YXJ0IG15X3NlcnZpY2UKCnNoZWxsPiBuZXQgc3RvcCBteV9zZXJ2aWNl[/et_pb_dmb_code_snippet]

Se você instalar o processo servidor em forma de serviço, com outro nome que não seja MySQL, e não for especificado o parâmetro –defaults-file o processo servidor irá ler as opções do arquivo padrão no grupo [my_service], ao invés das opções do grupo [mysqld].