Iniciar uma conversa

Como usar banco de dados de contas/domínios (e outros) em MySQL no IceWarp Server?

O objetivo do FAQ é demonstrar como alocar as configurações de contas (usernames, senhas, encaminhamentos, limites, etc) e de domínios em um banco de dados, convertendo a partir do Sistema de arquivos Integrado. Os emails sempre são armazenados em arquivos (maildir), o banco de dados é  usado apenas para manter todas configurações de contas e domínios.
É recomendado alocar contas em banco de dados, sobretudo caso tenha mais de 500 contas. Logicamente, se o servidor MySQL estiver instalado em um servidor diferente do IceWarp, será bem melhor para o desempenho, e é recomendado caso tenha mais de 2.000 contas. Os pré-requisitos do IceWarp Server podem ser vistos em https://www.icewarp.com.br/features/specs/

Para versões anteriores à 10.3, recomendamos usar o MySQL 5.0.x e não o 5.1.x, pois devido a um bug no PHP, o banco de cache do Cliente Web, caso deseje usar MySQL, suportava apenas a versão 5.0.x. O MySQL 5.0.91 (mais recente da linha 5.0.x) pode ser obtido em: http://downloads.mysql.com/archives.php?p=mysql-5.0

A partir da versão 10.3, recomendamos o MySQL 5.1.x mais recente. Para IceWarp 10.4 em diante, é possível usar o MySQL 5.x.

Este FAQ é voltado para a plataforma Windows. Caso esteja na plataforma Linux, obtenha detalhes no nosso guia de instalação e controle do Linux.

A instalação do MySQL é basicamente padrão, lembrando de configurar no my.ini para aceitar cerca de no mínimo 1000 conexões simultâneas e escolher o cenário adequado durante a instalação, se você estará  usando um servidor MySQL dedicado ou compartilhado com outro aplicativo (no caso, o IceWarp Server). As demais configurações podem ser mantidas no padrão/default.

Inicialmente explicamos como usar MySQL para armazenamento das contas (configurações de contas e domínios) através de conexão direta, método mais rápido e recomendado. Em seguida, referenciamos o storage de contas usando ODBC.

Vale ressaltar que o FAQ é focado no banco de dados de contas, entretanto, basicamente os mesmos procedimentos podem ser usados para configurar o banco de dados do Anti-Spam e GroupWare (o default de ambos é SQLite). A única diferença, seria na hora de definir a conexão ao banco, o que no caso do GroupWare e Anti-Spam, é feito através do botão Configurações BD, em cada módulo (Ex: Antispam/Geral/guia Geral). Por exemplo, para definir um novo banco de dados zerado no Anti-Spam, informe os dados (host, user, senha, escolha MySQL em ambos menus pulldown para conexão direta) e clique em Criar Tabelas, para que a estrutura de tabelas seja criada. Caso o banco já possua dados, você pode migrar seus dados para outro banco (vide o parágrafo seguinte) ou, caso queira realmente remover todos os dados do mesmo e usar o mesmo banco de forma "zerada", sem os dados antigos, clique em Remover Tabelas e depois Criar Tabelas).

Caso o seu banco de dados de contas já esteja em determinado sistema e deseje migrar para outro servidor de banco de dados, como por exemplo, de SQLite para MySQL, use a opção Migração de BD em Sistemas / Ferramentas, especificando o banco atual e o novo. Isso serve também para migrar outros bancos de dados, como do GroupWare e Anti-Spam. Demais procedimentos referenciados abaixo de criação do banco e preparação do IceWarp para realizar conectividade, são idênticos.

Conexão direta (mais rápido, método recomendado)

1 - Criação de um banco de dados para as configurações de contas/domínios do IceWarp Server

É necessário criar um banco de dados no MySQL, que será usado pelo IceWarp. Para obter a linha de comando do MySQL, digite "mysql -u <nomeusuario> password <senha>" em uma linha de comando, dentro do diretório bin/mysql, ou acesse o prompt o MySQL diretamente através do Menu Iniciar.

Ao criar bancos de dados usados pelo IceWarp, sempre recomendamos criar em UTF-8, com collation utf8_general_ci. Veja o comando exato que você pode executar via linha de comando MySQL:

CREATE DATABASE `icewarp_contas` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Foi criado o banco de dados "icewarp_contas". Crie outros bancos, caso deseje, como para o Anti-Spam e GroupWare.

2 - Copie o libmysql.dll 32 bits da pasta de instalação do mysql/bin (32 bits) para /windows/system32 ou, caso esteja em 64 bits com versão 32 bits do IceWarp, para dentro de /windows/syswow64.

Atenção: Caso esteja em 64 bits, instale a versão 64 bits do IceWarp e do MySQL, bem como copie libmysql.dll 64 bits para \windows\ e 32 bits para dentro de \windows\syswow64\.

3 - Em Sistema / Armazenamento, escolha o radio button "Banco de dados". Em seguida, clique no botão "Configurações BD". Especifique nome do banco de dados, servidor (host, caso MySQL esteja na mesma máquina que o IceWarp,  use "localhost"), usuário e senha. Nos 2 menus pulldown na parte inferior, escolha MySQL. Veja a tela de exemplo:



Clique em Criar Tabelas. IceWarp deverá indagar se você deseja alterar para sistema de armazenamento de banco de dados e converter todas as contas e configurações para banco de dados. Responda que sim e a migração de dados para banco de dados será feita. Opcionalmente, após o comando Create Tables, você pode responder que não deseja fazer a conversão e clicar no botão Converter para BD.

Pressione F5 para recarregar e o IceWarp funcionará com o seu banco de dados MySQL. Verifique se usuários conseguem efetuar login ao Cliente Web e baixar emails. Caso negativo, veja o log de erro (Status / Logs) e, na pior das hipóteses, volte para Sistema de arquivos Integrado.

Conexão via ODBC

A seguir, explicamos como realizar conexão via DSN para o banco de dados das contas, entretanto, a chamada conexão direta é mais rápida (veja no início do FAQ).

1. Criação de um banco de dados para o IceWarp

É necessário criar um banco de dados no MySQL, que será usado pelo IceWarp. Para obter a linha de comando do MySQL, digite "mysql -u <nomeusuario> password <senha>" em uma linha de comando.

Ao criar bancos de dados usados pelo IceWarp, sempre recomendamos criar em UTF-8, com collation utf8_general_ci. Veja o comando exato que você pode executar via linha de comando MySQL:

CREATE DATABASE `example` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Foi criado o banco de dados "example".

2. Criação de um DSN do sistema

Vale ressaltar que você precisa obter o driver MyODBC do site http://www.mysql.com. A versão 5.x é suportada.

Importante: caso esteja em Windows 64 bits com IceWarp 32 bits, crie o ODBC em 32 bits, acessando %systemdrive%\Windows\SysWoW64\Odbcad32.exe, caso contrário, não visualizará a DSN através do console IceWarp. Caso esteja usando o IceWarp 64 bits, crie a DNS tanto em 32 bits quanto 64 bits em system32/odbccad32.exe e syswow64/odbccad32.exe.

Acesse Painel de Controle - Ferramentas Administrativas - Fontes de Dados (ODBC) - DSN do Sistema - Adicionar.

A caixa de diálogo Criar Nova Fonte de Dados será aberta. Escolha o driver de ODBC que você instalou (nesse caso, o MyODBC):

A configuração da DSN será exibida.

Suponhamos que o nosso datasource e nome de banco são "icewarp_contas", o usuário é root e o servidor de MySQL está rodando na mesma máquina que o IceWarp Server (localhost).

Logicamente, se o servidor MySQL estiver instalado em um servidor diferente do IceWarp, será bem melhor para o desempenho, e é recomendado caso tenha mais de 2.000 contas.

3 - Em Sistema / Armazenamento, escolha o radio button "Banco de dados". Em seguida, clique no botão "Configurações BD". Especifique nome do banco de dados, servidor (host, caso MySQL esteja na mesma máquina que o IceWarp,  use "localhost"), usuário e senha. Nos menus pulldown escolha Sintaxe MySQL e Driver ODBC.

Clique em Criar Tabelas. IceWarp deverá indagar se você deseja alterar para sistema de armazenamento de banco de dados e converter todas as contas e configurações para banco de dados. Responda que sim e a migração de dados para banco de dados será feita. Opcionalmente, após o comando Create Tables, você pode responder que não deseja fazer a conversão e clicar no botão Converter para BD.

Pressione F5 para recarregar e o IceWarp funcionará com o seu banco de dados MySQL.

4 - Verifique se usuários conseguem efetuar login ao Cliente Web e baixar emails. Caso negativo, veja o log de erro (Status / Logs) e, na pior das hipóteses, volte para Sistema de arquivos Integrado.

IMPORTANTE

Vale ressaltar que, ao alocar IceWarp para usar bancos de dados em MySQL/SQL Server (ou quaisquer outros com excessão do SQLite), é essencial realizar backup de tais bancos por fora, não sendo realizado backup pelo IceWarp. O IceWarp pode apenas realizar sincronia de alguns dos bancos do sistema para outro servidor de bancos de dados, se tal opção estiver ativada em Sistema/Ferramentas/Backup do sistema. O ideal, entretanto é agendar dumps (backups) de todos seus bancos.

Escolher arquivos ou arraste e solte arquivos
Esse artigo foi útil?
Sim
Não
  1. Flávio Zarur Lucarelli

  2. Publicado
  3. Atualizado

Comentários