15
INICIANDO OS TRABALHOS Wagner Bianchi Certified MySQL 5.0 Developer Certified MySQL 5.0 Database Administrator Certified MySQL 5.1 Cluster Database Administrator

UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Embed Size (px)

DESCRIPTION

Material utilizado em Workshop para a turma de Ciência da Computação da Universidade Federal de Alfenas.

Citation preview

Page 1: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

INICIANDO OS TRABALHOS

Wagner Bianchi Certified MySQL 5.0 Developer

Certified MySQL 5.0 Database Administrator Certified MySQL 5.1 Cluster Database Administrator

Page 2: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Para iniciarmos... !   Preparação do ambiente de bancos de dados:

–  Criar máquinas virtuais com o Vagrant •  O que é o Vagrant? •  Quais são as características do Vagrant? •  Por utilizamos e quais as vantagens do Vagrant? •  Subindo um novo projeto com o Vagrant!

–  Configurando o servidor de bancos de dados MySQL 5.6 •  Baixando o arquivo do banco de dados World; •  Fazendo o restore da versão *InnoDB do db World; •  Trabalhando uma instalação segura do MySQL 5.6;

–  Instalando software adicionais (repositório EPEL) •  Iptraf, innotop, htop, ...

Page 3: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
Page 4: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

O que é o Vagrant? !   O Vagrant é um software de virtualização que executa seus

serviços com base no driver de virtualização do VirtualBox e/ou VMWare;

!   É baseado em script escritos em Ruby e permite obter máquinas virtuais com as mesmas características de servidores de produção;

!   Basta instalar o Vagrant, adicionar um box, adicionar características da VM a um arquivo de configuração e subir a máquina com um comando “vagrant up”...

Page 5: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Vantagens de se utilizar o Vagrant... !   Podemos subir máquinas virtuais a partir de um script que:

–  Podemos manter todos os projetos de VMs em projetos; –  Adiciona as mesma características de máquinas de produção; –  Fácil de controlar se status com comandos up | suspend | halt; –  Interage com o mesmo hypervisor do VirtualBox; –  Conta com uma lista online dos principais SOs;

!   A sequência é: –  Adicione o box que está disponível em uma URL (file | http); –  Crie o projeto e dentro desse projeto: vagrant init –  Edite o arquivo de configuração Vagrantfile; –  Envie o comando vagrant up ...

Page 6: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Subindo um novo projeto com o Vagrant! !   Verificamos os boxes disponíveis no Vagrant !   Criarmos um novo projeto e enviamos um vagrant init

!   O comando vagrant init criará um arquivo de configuração chamado Vagrantfile o qual editaremos para que nossa máquina virtual tenha as características que precisamos;

# vagrant box list!

# mkdir /opt/mysql56!# cd /opt/mysql56!# vagrant init!

Page 7: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

# -*- mode: ruby -*-!# vi: set ft=ruby :!!VAGRANTFILE_API_VERSION = "2"!!Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|! config.vm.provision "shell", path: "setup_env.sh"! config.vm.define "mysql01" do |mysql01|! mysql01.vm.box = "centos65-x86_64"! mysql01.vm.network "public_network" ! mysql01.vm.network :forwarded_port, guest: 22, host: 1433! end!end!

Subindo um novo projeto com o Vagrant! Vagrantfile – arquivo de configuração das VMs de nosso projeto...

Page 8: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Subindo um novo projeto com o Vagrant! !   Adicionamos um script para ser executado em meio a

instalação da máquina virtual – o Vagrant roda esse script;

!   Agora basta subir a máquina: vagrant up!!   Observe os logs no terminal...

#!/bin/bash!sudo yum -y install wget vim!sudo rpm -Uvi https://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm!sudo yum-config-manager --enable mysql56-community!sudo yum -y install mysql-server!sudo service mysqld start!

Page 9: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Máquina Virtual pronta! !   Após subir a máquina virtual com o Vagrant:

–  O encaminhamento já foi criado, portas configuradas; –  O acesso via ssh com criptografia de chaves também criado; –  Já podemos acessar a máquina com um simples:

!   Algumas configurações demandadas: –  Verificar o status do MySQL; –  Alterar o nome do servidor Linux para mysql56; –  Reiniciar a máquina virtual através do Vagrant.

# vagrant ssh mysql56!

Page 10: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Máquina Virtual pronta! !   Acessando a máquina recém criada:

!   Alterando o nome da máquina recém criada:

!   Reiniciando a máquina pelo Vagrant:

# vagrant ssh mysql56!

# sudo -i!# vi /etc/sysconfig/network!HOSTNAME=mysql56!# exit!# exit!

# vagrant halt mysql56!==> mysql56: Attempting graceful shutdown of VM...!# vagrant up mysql56!

Page 11: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
Page 12: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Verificando o MySQL 5.6 !   Ao instalar o MySQL 5.6, o próximo passo é executar os

procedimentos que vão garantir a segurança dos bancos;

!   Agora o root tem uma senha e é com esta senha (123456) que trabalharemos daqui para frente;

# vagrant ssh mysql56!Last login: Sun Aug 31 14:49:59 2014 from 10.0.2.2![vagrant@mysql56 ~]$ sudo -i![root@mysql56 ~]# mysql_secure_instalation !

Page 13: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Baixando o instalando o db World! !   Na linha de comando, no diretório /root, faça o download do

arquivo do banco de dados World: [root@mysql56 ~]# wget http://downloads.mysql.com/docs/world_innodb.sql.zip![...]![root@mysql56 ~]# ls -lh!total 92K!-rw-r--r-- 1 root root 90K Aug 31 14:28 world_innodb.sql.zip![root@mysql56 ~]# unzip world_innodb.sql.zip!Archive: world_innodb.sql.zip! inflating: world_innodb.sql!!

Page 14: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Baixando o instalando o db World! !   Fazendo restore com o mysql client: #: criamos um banco de dados![root@mysql56 ~]# mysql -u root -p -e "create database world"!Enter password:!!#: fazemos o restore do banco através do arquivo![root@mysql56 ~]# time mysql -u root -p world < world_innodb.sql!Enter password:!!real !0m25.820s!user !0m0.322s!sys !0m0.252s!

Page 15: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

FIM