Á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 do fluig.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/

Case Sensitive
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.

Deck of Cards
idmysql
Card
label

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

...

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.

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
Deck of Cards
idcase
Card
labelMySQL em versão anterior a 8.0
Bloco de código
title
lower_case_table_names=1
card

Âncora
mysql80
mysql80

No Linux e MySQL 8.0 siga os passos abaixo:

Painel
titleMySQL na versão 8.0
labelMysql 8.0
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 o arquivo /etc/mysql/mysql.conf.d/mysqld.cnf e adicione a seguinte linha após [mysqld].

    Bloco de código

    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 comando.

    Bloco de códigomysqld --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)

    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 usando o comando:

    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 criado 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:

    label
    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

    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.

    ...

    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.zzXX.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.

    ...