Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Informações
titleAtenção

Esta página é destina para atualizações 1.6 e superiores do fluigTOTVS Fluig Plataforma.

Caso possua uma atualização anterior do fluig acesse: Como configurar o banco de dados MySQL na release 1.5.13 ou inferior?

Índice

Índice
maxLevel4
outlinetrue
exclude.*ndice
stylenone

...

Para verificar as versões homologadas do MySQL acesse a Matriz de Portabilidade.

...


Passo a passo para configuração do MySQL

...

As configurações apresentadas abaixo devem ser realizadas antes da criação do banco de dados da plataforma.

Aviso
titleIMPORTANTE

A atualização para versão MySQL 8.0, ou seja, quando já existe um banco criado em versões anteriores, é um processo complexo que envolve diversas configurações e requer muita atenção.

Recomendamos consultar um especialista em banco de dados para executar esses procedimentos devido a complexidade das configurações.

Contudo, listamos alguns materiais de apoio que indicamos a leitura antes de prosseguir com a atualização:

https://dev.mysql.com/doc/refman/8.0/en/upgrading.html

https://dev.mysql.com/blog-archive/inplace-upgrade-from-mysql-5-7-to-mysql-8-0/

Nota
titleAtenção!

Por questões de segurança é altamente recomendável efetuar a encriptação da senha conforme o procedimento informado na documentação encriptação de senha do banco de dados.

Criação do usuário e concessão de privilégios

Para a criação de um novo usuário em banco de dados MySQL usamos a instrução CREATE USER, conforme sintaxe abaixo:

Bloco de código
languagesql
CREATE USER 'sha2user'@'localhost'
IDENTIFIED WITH caching_sha2_password BY 'password';

Onde:

  • sha2user: Nome do usuário que será criado;
  • localhost: Host que irá acessar;
  • password: Senha do usuário que será criado;


Após criado o usuário é necessário conceder os privilégios de sistema necessários para ele, conforme sintaxe abaixo:

Bloco de código
languagesql
GRANT all ON fluig.

...

* TO 'sha2user'@'localhost';

Onde:

  • sha2user: Nome do usuário criado anteriormente;
  • localhost: Host do usuário criado anteriormente;


Parâmetro de conexão

...

Nessa etapa, é realizada uma configuração específica para a versão do MySQL 8.0. Para as demais versões do MySQL permanece o que foi configurado por padrão.

Caso a configuração seja para a versão MySQL 8.0, é necessário alterar o parâmetro de conexão do arquivo domain.xml. Para isso, acesse o diretório \appserver\domain\configuration e localize as tags <connection-url>. O parâmetro dessa tag deve ser alterado de: ?useSSL=false para ?allowPublicKeyRetrieval=true&amp;useSSL=false


Case sensitive

...

idmysql

...

...

Por padrão, aliases de tabelas são case sensitive no Unix, mas não são no Windows. Para evitar problemas causados por esta característica, no MySQL é necessário adicionar a variável de sistema lower_case_table_

...

names no arquivo de configuração do MySQL.

deck
Painel
titleMySQL em versões anteriores a 8.0

Se você utiliza o banco de dados MySQL em versões anteriores a 8.0, basta incluir essa variável no arquivo my.ini (Windows) ou my.cnf (Linux).

Linux: my.cnf / Windows: my.ini
Bloco de código
idcase
Card
labelMysql < 8.0
Bloco de código
title
lower_case_table_names=1

Âncora
mysql80

...

mysql80

No Linux e MySQL

Se você utiliza o banco de dados MySQL na versão 8.0, no Windows você não precisa efetuar nenhuma configuração. A variável

lower_case_table_names

=1

Inicialize o mysql usando o seguinte

mysqld --defaults-file=/etc/mysql/my.cnf --initialize

já vem configurada por padrão com o valor 1.


No Linux, é OBRIGATÓRIO realizar essa configuração na instalação do servidor MySQL, alterando a variável lower_case_table_names

=1 --user=mysql --console
  • Repetir (Opcional)

  • Painel
    titleMySQL na versão
    labelMysql 8.0
    8.0
    siga os passos abaixo:
    Nota
    titleAtenção!

    Faça o backup dos esquemas existentes antes de executar as etapas a seguir.

  • Pare o serviço do mysql

    Bloco de código
    sudo service mysql stop
  • Mova ou remova o diretório /var/lib/mysql. Isso excluirá todos os bancos de dados!

    Bloco de código
    mv /var/lib/mysql /tmp/mysql

    Crie um novo diretório /var/lib/mysql e torne o usuário mysql como proprietário

    Bloco de código
    mkdir /var/lib/mysql
    chown -R mysql:mysql /var/lib/mysql
    chmod 750 /var/lib/mysql

    Edite /etc/mysql/mysql.conf.d/mysqld.cnf e adicione a seguinte linha após [mysqld]

    Bloco de código
    Bloco de código
    Bloco de código
    chown -R mysql:mysql /var/lib/mysql
    chmod 750 /var/lib/mysql

    “se o dono dos arquivos em /var/lib/mysql não for o mysql

  • Inicie o serviço do mysql

    Bloco de código
    sudo service mysql start
  • Conecte no banco

    Bloco de código
    mysql -u root -p

    e execute esta consulta

    Bloco de código
    SHOW VARIABLES where Variable_name like 'lower%';

    O resultado deve ser:

    Bloco de código
    'lower_case_table_names', '1'
  • Restaure os esquemas usando o dump criando antes das etapas.

  • Execute mysql_upgrade para criar o esquema sys.

    para o valor 1.

    Por se tratar de uma variável de sistema, que não pode ser alterada posteriormente, é muito importante configurá-la corretamente na instalação.

    Para mais informações sobre o uso e configuração do case sensitive na versão 8.0, consulte aqui.

    Engines

    ...

    Card
    labelEngines

    Além disso é necessário confirmar que as tabelas serão criadas corretamente no banco de dados. Para isso, no Command Line Client do MySQL verifique a engine utilizada informando o comando: 

    Bloco de código
    languagesql
    SHOW ENGINES\G

    Localize a engine InnoDB, conforme a imagem abaixo:

    Image Modified

    Se a engine InnoDB não for apresentada como Default, o parâmetro default_storage_engine também deve ser adicionado ao arquivo, conforme segue:

    label
    Bloco de código
    titleArquivo de configuração do MySQL (Normalmente Linux: my.cnf / Windows: my.ini
    default_storage_engine=InnoDB
    Card

    Memória

    ...

    Também é possível definir a quantidade de memória a ser usada pelo MySQL. Em um servidor dedicado, a boa prática é alocar de 75% a 80% da memória disponível para o banco de dados:

    Bloco de código
    titleArquivo de configuração do MySQL (Normalmente Linux: my.cnf / Windows: my.ini
    innodb_buffer_pool_size=<valor em bytes>


    • Por exemplo, para alocar 128 MB de memória teríamos: innodb_buffer_pool_size=134217728.

    ...

    Criação de

    ...

    tabelas

    ...

    Caso sejam criados formulários com muitos campos, sendo a maioria deles do tipo TEXT, o MySQL pode restringir a criação de tabelas em que o tamanho somado dos campos ultrapasse o limite permitido. 

    Recomendamos efetuar as seguintes configurações no banco de dados para solucionar essa restrição:

    Bloco de código
    titleArquivo de configuração do MySQL (Normalmente Linux: my.cnf / Windows: my.ini
    innodb_log_file_size=512M #Somente para MySQL em versões anteriores a 8.0
    innodb_log_buffer_size=800M
    innodb_strict_mode=0
    Card
    label

    Confirmar alterações

    ...

    Após realizar as configurações expostas nos passos anteriores, é necessário reiniciar o MySQL e confirmar a aplicação das alterações.

    Para verificar se a configuração case sensitive foi efetuada com sucesso, execute o comando SQL abaixo. Se no resultado a coluna value possuir o valor 1 a configuração está correta.

    Bloco de código
    languagesql
    SHOW GLOBAL VARIABLES LIKE 'lower_case_table_names';

    Confirme também a alteração do Engine para InnoDB, caso tenha adicionado o parâmetro default_storage_engine ao arquivo:

    Bloco de código
    languagesql
    SHOW ENGINES\G

    Se a engine InnoDB aparecer como Default a configuração foi aplicada com sucesso.


    Nota
    titleAtenção!
    1. Timezone: O banco de dados MySQL possui validação de timezone, sendo assim, para a instalação do fluig da plataforma com MySQL, é necessário que o que o servidor onde está instalado o fluig instalada a plataforma tenha o timezone válido (reconhecido pelo MySQL).
    2. SSL: Se for necessário usar SSL, é preciso alterar o parâmetro useSSL para true. Esse parâmetro é encontrado na string de conexão dentro do arquivo domain.xml.


    Criação do banco de dados com codificação UTF-8

    ...

    O fluig A plataforma necessita de uma base de dados com charset UTF-8, para . Para criar o banco com esta característica utilize o seguinte comando SQL, substituindo "nome_do_banco" pelo nome do banco a ser criado:

    Painel
    titleMySQL em versões anteriores a 8.0
    Bloco de código
    languagesql
    CREATE DATABASE nome_do_banco CHARACTER SET utf8 COLLATE utf8_general_ci;
    Painel
    titleMySQL na versão 8.0
    Bloco de código
    languagesql
    CREATE DATABASE nome_do_banco CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    Aviso
    titleATENÇÃO

    A partir da versão 8.0 o charset utf8 e collate utf8_general_ci estão descontinuados e em breve não poderão ser mais utilizados.

    Caso esteja atualizando para a versão 8.0, ou seja, já tenha um banco criado com o charset utf8 e collate utf8_general_ci, é necessário planejar a conversão do banco e tabelas para o charset utf8mb4 e collate utf8mb4_general_ci.

    Recomendamos consultar um especialista em banco de dados para executar esses procedimentos. Existem ferramentas que realizam essa conversão e também comandos SQL que podem ser executados manualmente em seu banco de dados.

    Informações

    Não há um padrão para "nome_do_banco", cada cliente pode colocar o nome que desejar, por exemplo: fluig, fluig-homologacao ou minhaempresa.


    Download do Driver

    ...

    Para utilização do banco de dados MySQL, é necessário fazer o download do driver MySQL separadamente. 

    Por isso, antes de iniciar a instalação do fluig/atualização da plataforma, siga os passos a seguir:

    1. Faça o download do driver diretamente no site do MySQL;

      Informações
      titleFique atento!

      O driver do MySQL deve estar na mesma versão que o do banco do fluig (5.x)MySQL que você tem instalado. Para saber quais são as versões homologadas acesse a Matriz de Portabilidade.

    2. No campo Select Platform acione a opção Platform Independent;
    3. Clique no botão Download ao lado da versão em arquivo ZIP;
    4. Clique em No thanks, just start my download e será iniciado o download de um arquivo chamado mysql-connector-java-xx.y.zz-XX.Y.ZZ.zip ou mysql-connector-j-XX.Y.ZZ.zip, onde xxonde XX.yY.zz é ZZ é a versão atual do driver;
    5. Descompacte o arquivo baixado. Será criada uma pasta chamada mysql-connector-java-xx.y.zz-XX.Y.ZZ ou mysql-connector-j-XX.Y.ZZ.zip;
    6. Nesta pasta há um arquivo chamado mysql mysql-connector-java-xxXX.yY.zzZZ-bin.jar ou mysql-connector-j-XX.Y.ZZ.jar. Esse arquivo é o driver.

    Durante a instalação do fluigda plataforma, será necessário indicar o caminho onde o driver do MySQL foi armazenado.


    Nota
    titleComo atualizar?

    A atualização do Fluig não permite atualizar o driver pelo instalador. Esse procedimento deve ser executado manualmente, seguindo os passos abaixo:

    1. Acesse a pasta <instalação Fluig>\appserver\modules\com\mysql\main
    2. Exclua o arquivo mysql-connector-java.jar dessa pasta
    3. Copie o arquivo mysql-connector-java-XX.Y.ZZ-bin.jar ou mysql-connector-j-XX.Y.ZZ.jar (baixado do site e descompactado) para a pasta <instalação Fluig>\appserver\modules\com\mysql\main
    4. Renomeie o arquivo copiado (mysql-connector-java-XX.Y.ZZ-bin.jar ou mysql-connector-j-XX.Y.ZZ.jar) para mysql-connector-java.jar


    Otimizando a performance do banco de dados MySQL

    ...

    Aviso
    titleAtenção!

    O Limite limite default do banco Mysql para MySQL para campos tipo text, é de 195, dentro . Dentro deste padrão são realizados todos os testes com formulários no fluigFluig.

    Não recomendamos a alteração do parâmetro innodb_log_file_size, para exportação de campos para o fluig, pois pode comprometer o desempenho da plataformaaplicação.

    Quando trabalhamos com um volume elevado de dados e usuários, o banco de dados pode apresentar problemas de baixo desempenho. Um investimento em capacidade física dos servidores é sempre bom, porém há momentos que o tuning irá representar ganhos expressivos de performance.

    ...