Commit 69b84b1092640c2bb33a042dc1d5908dc2d17ab4

Authored by Guilherme Andrade Del Cantoni
2 parents 8753facf 32885945

Atualização do Mysql para versão 5.7

Ajuste realizado para resolver o problema truncamento de dados caso extrapole o tamanho da coluna. (Closes #6)
Vagrantfile
1 1 # -*- mode: ruby -*-
2 2 # vi: set ft=ruby :
3   -require "yaml"
4 3  
5 4 # Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
6 5 VAGRANTFILE_API_VERSION = "2"
7 6  
8   -# Parâmetros de customização do ambiente de desenvolvimento
9   -params = if File.exists?("Vagrantfile.conf") then YAML::load_file("Vagrantfile.conf") else {} end
10   -params_source_dir = params["source_dir"] || "../sei"
11   -params_memoria_vm = params["memoria_vm"] || "1024"
12   -
13 7 Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
14 8  
15 9 # Atribuição do hostname da máquina virtual
... ... @@ -27,22 +21,18 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
27 21  
28 22 # Diretórios compartilhados com a durante a execução
29 23 config.vm.synced_folder ".", "/mnt/sei/ops"
30   - config.vm.synced_folder params_source_dir, "/mnt/sei/src", mount_options: ["dmode=777", "fmode=777"]
  24 + config.vm.synced_folder "../sei", "/mnt/sei/src", mount_options: ["dmode=777", "fmode=777"]
31 25  
32   - # Provider-specific configuration so you can fine-tune various
33   - # backing providers for Vagrant. These expose provider-specific options.
34 26 config.vm.provider "virtualbox" do |vb|
35   - # vb.gui = true
36   - # Use VBoxManage to customize the VM. For example to change memory:
37   - vb.customize ["modifyvm", :id, "--memory", params_memoria_vm, "--usb", "off", "--audio", "none"]
  27 + vb.customize ["modifyvm", :id, "--memory", "2048", "--usb", "off", "--audio", "none"]
38 28 end
39 29  
40   - config.vm.provision "shell",
41   - inline: <<SCRIPT
42   - mkdir -p /mnt/sei/ops/mysql/.tmp/
43   - cp /mnt/sei/ops/sei/ConfiguracaoSEI.php /mnt/sei/src/sei/ConfiguracaoSEI.php
44   - cp /mnt/sei/ops/sei/ConfiguracaoSip.php /mnt/sei/src/sip/ConfiguracaoSip.php
45   -SCRIPT
  30 +# config.vm.provision "shell",
  31 +# inline: <<SCRIPT
  32 +# mkdir -p /mnt/sei/ops/mysql/.tmp/
  33 +# cp /mnt/sei/ops/sei/ConfiguracaoSEI.php /mnt/sei/src/sei/ConfiguracaoSEI.php
  34 +# cp /mnt/sei/ops/sei/ConfiguracaoSip.php /mnt/sei/src/sip/ConfiguracaoSip.php
  35 +#SCRIPT
46 36  
47 37 # Provisionamento da Máquina Virtual responsável por manter os containers do Docker
48 38 config.vm.provision "docker" do |docker|
... ...
mysql/Dockerfile
... ... @@ -13,59 +13,15 @@ MAINTAINER PEN - Processo Eletrônico Nacional
13 13  
14 14 ################## INICIO DA INSTALACAO ######################
15 15 # Instalação do MySQL seguindo as recomendações descritas na documentação do SEI
16   -# Ref: https://processoeletronico.gov.br/projects/sei/wiki
17   -
18   -# Instalação do MySQL Server 5.X
19   -RUN yum update -y && \
20   - yum install -y mysql-server-5.* && \
21   - yum -y clean all
22 16  
23 17 # Cópia dos backups dos bancos de dados do SEI e SIP
24   -#ADD .tmp/sei_mysql.sql /tmp/sei_mysql.sql
25   -#ADD .tmp/sip_mysql.sql /tmp/sip_mysql.sql
26   -ADD sei-db-ref-executivo/mysql/sei_2_6_0_BD_Ref_Exec.sql /tmp/sei_mysql.sql
27   -ADD sei-db-ref-executivo/mysql/sip_2_6_0_BD_Ref_Exec.sql /tmp/sip_mysql.sql
  18 +ADD sei-db-ref-executivo/mysql/sei_2_6_0_BD_Ref_Exec.sql /opt/sei_mysql.sql
  19 +ADD sei-db-ref-executivo/mysql/sip_2_6_0_BD_Ref_Exec.sql /opt/sip_mysql.sql
28 20 ADD my.cnf /etc/my.cnf
  21 +ADD install.sh /install.sh
29 22  
30   -# Configuração da estrutura inicial do banco de dados
31   -RUN mysql_install_db
32   -
33   -# Criação dos bancos de dados do sistema
34   -RUN /etc/init.d/mysqld start && \
35   - mysqladmin create sip && \
36   - mysqladmin create sei
37   -
38   -# Criação dos usuários utilizados na conexão com SEI e SIP
39   -RUN /etc/init.d/mysqld start && \
40   - mysql -e "CREATE USER 'sip_user'@'%' IDENTIFIED BY 'sip_user'" sip && \
41   - mysql -e "CREATE USER 'sei_user'@'%' IDENTIFIED BY 'sei_user'" sei && \
42   - mysql -e "GRANT ALL PRIVILEGES ON sip.* TO 'sip_user'@'%'" sip && \
43   - mysql -e "GRANT ALL PRIVILEGES ON sei.* TO 'sei_user'@'%'" sei
44   -
45   -# Restauração dos bancos de dados
46   -RUN /etc/init.d/mysqld start && cd /tmp && \
47   - mysql sei < sei_mysql.sql && \
48   - mysql sip < sip_mysql.sql && \
49   - rm -f /tmp/sei_mysql.sql /tmp/sip_mysql.sql
50   -
51   -# Atualização dos parâmetros do SEI e do SIP
52   -RUN /etc/init.d/mysqld start && \
53   - mysql -e "update orgao set sigla='ABC', descricao='ORGAO ABC' where id_orgao=0;" sip && \
54   - mysql -e "update sistema set pagina_inicial='http://localhost/sip' where sigla='SIP';" sip && \
55   - mysql -e "update sistema set pagina_inicial='http://localhost/sei/inicializar.php', web_service='http://localhost/sei/controlador_ws.php?servico=sip' where sigla='SEI';" sip && \
56   - mysql -e "update orgao set sigla='ABC', descricao='ORGAO ABC' where id_orgao=0;" sei
57   -
58   -# Temp: Remove registros de auditoria presentes na base de referência
59   -RUN /etc/init.d/mysqld start && \
60   - mysql -e "delete from auditoria_protocolo;" sei
61   -
62   -# Configuração para utilizar autenticação nativa do SEI/SIP
63   -RUN /etc/init.d/mysqld start && \
64   - mysql -e "update orgao set sin_autenticar='N' where id_orgao=0;" sip
65   -
66   -# Atribuição de permissões de acesso externo para o usuário root, senha root
67   -RUN /etc/init.d/mysqld start && \
68   - mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;"
  23 +# Instalação do MySQL 5.7 e demais componentes
  24 +RUN bash install.sh
69 25  
70 26 ##################### FIM DA INSTALACAO #####################
71 27  
... ...
mysql/install.sh 0 → 100644
... ... @@ -0,0 +1,59 @@
  1 +#!/usr/bin/env bash
  2 +
  3 +set -e
  4 +set -u
  5 +set -o pipefail
  6 +
  7 +yum update -y
  8 +
  9 +# Instalar o yum repo rpm package
  10 +yum install -y wget
  11 +wget http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
  12 +yum localinstall -y mysql57-community-release-el6-7.noarch.rpm
  13 +
  14 +# Instalação do MySQL Server 5.X
  15 +yum install -y mysql-community-server
  16 +
  17 +# Inicialização do diretório de armazenamento do MySQL.
  18 +# PS: Utilizando configuração insegura apenas para propósito de desenvolvimento
  19 +rm -rf /var/lib/mysql/*
  20 +chown -R mysql:mysql /var/lib/mysql
  21 +mysqld --user=mysql --initialize-insecure
  22 +
  23 +# Inicialização do banco de dados
  24 +/etc/init.d/mysqld start
  25 +
  26 +# Criação dos bancos de dados do sistema
  27 +mysqladmin create sip
  28 +mysqladmin create sei
  29 +
  30 +# Criação dos usuários utilizados na conexão com SEI e SIP
  31 +mysql -e "CREATE USER 'sip_user'@'%' IDENTIFIED BY 'sip_user'" sip
  32 +mysql -e "CREATE USER 'sei_user'@'%' IDENTIFIED BY 'sei_user'" sei
  33 +mysql -e "GRANT ALL PRIVILEGES ON sip.* TO 'sip_user'@'%'" sip
  34 +mysql -e "GRANT ALL PRIVILEGES ON sei.* TO 'sei_user'@'%'" sei
  35 +
  36 +# Restauração dos bancos de dados
  37 +mysql sei < /opt/sei_mysql.sql
  38 +mysql sip < /opt/sip_mysql.sql
  39 +rm -f /opt/sei_mysql.sql /opt/sip_mysql.sql
  40 +
  41 +# Atualização dos parâmetros do SEI e do SIP
  42 +mysql -e "update orgao set sigla='ABC', descricao='ORGAO ABC' where id_orgao=0;" sip
  43 +mysql -e "update sistema set pagina_inicial='http://localhost/sip' where sigla='SIP';" sip
  44 +mysql -e "update sistema set pagina_inicial='http://localhost/sei/inicializar.php', web_service='http://localhost/sei/controlador_ws.php?servico=sip' where sigla='SEI';" sip
  45 +mysql -e "update orgao set sigla='ABC', descricao='ORGAO ABC' where id_orgao=0;" sei
  46 +
  47 +# Temp: Remove registros de auditoria presentes na base de referência
  48 +mysql -e "delete from auditoria_protocolo;" sei
  49 +
  50 +# Configuração para utilizar autenticação nativa do SEI/SIP
  51 +mysql -e "update orgao set sin_autenticar='N' where id_orgao=0;" sip
  52 +
  53 +# Atribuição de permissões de acesso externo para o usuário root, senha root
  54 +mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;"
  55 +
  56 +yum clean -y all
  57 +
  58 +
  59 +exit 0
... ...
mysql/my.cnf
1 1 [mysqld]
  2 +#
  3 +# Remove leading # and set to the amount of RAM for the most important data
  4 +# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
  5 +# innodb_buffer_pool_size = 128M
  6 +#
  7 +# Remove leading # to turn on a very important data integrity option: logging
  8 +# changes to the binary log between backups.
  9 +# log_bin
  10 +#
  11 +# Remove leading # to set options mainly useful for reporting servers.
  12 +# The server defaults are faster for transactions and fast SELECTs.
  13 +# Adjust sizes as needed, experiment to find the optimal values.
  14 +# join_buffer_size = 128M
  15 +# sort_buffer_size = 2M
  16 +# read_rnd_buffer_size = 2M
2 17 datadir=/var/lib/mysql
3 18 socket=/var/lib/mysql/mysql.sock
4   -user=mysql
  19 +
  20 +# Disabling symbolic-links is recommended to prevent assorted security risks
5 21 symbolic-links=0
6   -sql-mode=STRICT_TRANS_TABLES
  22 +
7 23 max_allowed_packet=268435456
8 24  
9   -[mysqld_safe]
10 25 log-error=/var/log/mysqld.log
11 26 pid-file=/var/run/mysqld/mysqld.pid
12   -
... ...