SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
1
<Insert Picture Here>




MySQL em 10 minutos - II
Alexandre M de Almeida
Consultor Sr MySQL
Por que utilizar o MySQL?


•  O que estão dizendo?
  –  “Altamente flexível, instalação rápida, disponibilidade de
     talentos no mercado, rápida formação de talentos, custo
     zero” Tim T., Pervasive Networks

  –  “Custo zero de aquisição, flexibilidade (storage engine),
     diversidade de ferramentas” Laine C., Tango.me

  –  “Simplicidade e Performance” Mitch P., Sounday

  –  “Simples, bem aceito por programadores e administradores,
     e é de graça” Mats K., Sr. Developer @ Oracle



                                                                  3
Por que utilizar o MySQL?


•  Flexível
  –  Storage Engines
  –  n respostas para 1 pergunta


•  Capacitação & Aprendizado
  –  Comandos simples e intuitivos
  –  Menor tempo & investimento na capacitação


•  Usabilidade
  –  Grande diversidade de ferramentas GUI
  –  Ferramentas gratuitas


                                                 4
Por que utilizar o MySQL?


•  Escalabilidade & Alta Disponilidade
  –  Replicação Nativa
  –  NDB Cluster (MySQL Cluster)
  –  Tungsten!, ScaleDB, InfiniDB


•  Funcionalidades
  –  Procedure, Functions & Triggers
  –  Events
  –  Funções & Comandos para desenvolvimento SQL




                                                   5
Por que utilizar o MySQL?


•  Transações
  –  100% ACID
  –  Transações Distribuídas (XA)


•  Gerenciamento & Monitoração
  –  MySQL Monitoring, MONyog
  –  Administrator, Nagios, comandos nativos
  –  Simples & Fácil


•  Performance
  –  Alta performance & altamente configurável


                                                 6
Por que utilizar o MySQL?


•  Baixo TCO
  –  Sabores: “grátis” ou “pago” (enterprise)
  –  Manutenção simples, menor downtime, menos $$$


•  Grand Finale
  –  OpenSource
  –  Confiabilidade e Robustez compravados
  –  O mascote é bacaninha
  –  Pouco exigente quanto ao hardware




                                                     7
<Insert Picture Here>



                                 MySQL Community


                         Tornar o MySQL um banco de
                        dados acessível e disponível à
                                               todos




                                                         8
Mão na massa… Mas, antes de tudo!


•  Qual o tipo de aplicação!        <Insert Picture Here>

•  Banco de dados OLTP ou OLAP?
•  Storage Engines?
•  Processamento e Processador
•  Memória, por favor, memória
•  Discos, ah sim, os discos




                                                       9
Pacotes de Instalação


•  Fonte (source)
•  Distro (yum, apt-get, urpmi, etc)
•  RPM
•  Binário
  –  RedHat, Linux Generic*, Solaris
  –  MacOS, Suse, FreeBSD
  –  Uindols




                                       10
Por que eu prefiro os binários?


•  Preguiça de compilar ;-)
•  Não sei usar as melhors opções (e você?)
•  Não sei se tenho as bibliotecas:
  –  mais atualizadas
  –  mais adequadas e compatíveis entre si (versões)
•  É mais rápido (install e performance)
•  Permite mais threads estáveis
•  Binários de melhor qualidade




                                                       11
Instalando o MySQL em 10 minutos
Instalação e Configuração Básica em 10 passos


•  Antes de disparar o cronômetro…
•  Consiga seu binário (tar.gz)

[root@daredevil ~]# cd /usr/local/
[root@daredevil local]# wget http://dev.mysql.com/get/Downloads/MySQL-5.5/
mysql-5.5.17-linux2.6-x86_64.tar.gz/from/http://ftp.gwdg.de/pub/misc/mysql/




                                                                              12
1. Descompactando o pacote baixado


•  tar (10s + tempo para lembrar como usar)
•  /usr/local ou /opt

root@daredevil local]# time tar -zxvf mysql-5.5.17-linux2.6-x86_64.tar.gz
mysql-5.5.17-linux2.6-x86_64/support-files/ndb-config-2-node.ini
mysql-5.5.17-linux2.6-x86_64/support-files/magic
mysql-5.5.17-linux2.6-x86_64/support-files/my-innodb-heavy-4G.cnf
…
real      0m10.165s
user      0m6.305s
sys       0m4.350s




                                                                            13
2. Criação de Usuário e Grupo


•  Usuário de sistema do mysqld
•  10 segundos (20 se for no escuro)

[root@daredevil   local]# useradd mysql




                                          14
3. Diretórios


•  /var/lib/mysql (normalmente é o default)
•  Um para dados outro para logs
•  Ideal discos diferentes (depende do HW)
•  10 segundos?

[root@daredevil local]# mkdir /dados
[root@daredevil local]# mkdir /logs




                                              15
4. Link Simbólico


•  Facilita na criação de PATHS
•  E ajuda num eventual upgrade de versão
•  0.05 segundos

[root@daredevil local]# ln -s mysql-5.5.17-linux2.6-x86_64/ mysql




                                                                    16
5. Personalização


•  Não é necessário à defaults
•  SepararDados & Logs à Back up Raw
•  3 minutos no máximo (só quem não fez curso de datilografia leva tanto tempo)
[root@daredevil local]# vi /etc/my.cnf     pid-file = /logs/mysqld.pid

[mysqld]                                  [client]
  server-id = 100                           port   = 3306
  port    = 3306                            socket = /logs/mysql.sock
  user    = mysql
  socket = /logs/mysql.sock
  datadir = /dados
  basedir = /usr/local/mysql
  log-error = /logs/errorlog.err
  log-bin = /logs/binlog
  relay-log = /logs/relaylog



                                                                                  17
7. Sistema de Dados


•  Script prepara o datadir e logs
[root@daredevil local]# cd /usr/local/mysql
[root@daredevil mysql]# scripts/mysql_install_db
Installing MySQL system tables...
OK
Filling help tables...
OK

…




                                                   18
8. Subir o servidor


•  Manual à mysqld_safe
•  Automático à mysql.server

[root@daredevil mysql]# bin/mysqld_safe &
111027 15:48:44 mysqld_safe Logging to '/logs/errorlog.err'.
111027 15:48:44 mysqld_safe Starting mysqld daemon with databases from /dados




                                                                                19
9. Mínimo baseline de Segurança


•  Script: mysql_secure_installation
  –  Senha para root (renomear é o ideal)
  –  Elimina acesso de qq host (%)
  –  Elimina acesso convidado (anônimo)
  –  “Dropa” banco de dados test




                                            20
10. Pronto para uso


•  Fala sério… 6min 38seg
•  Ajuste o PATH como requerido
[root@daredevil local]# export PATH=$PATH:/usr/local/mysql/bin

[root@daredevil local]# mysql –uroot –p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.5.17-log MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql>




                                                                                 21
<Insert Picture Here>



OBRIGADO!




            Alexandre M de Almeida
                    alexandremalmeida.com.br
                            alex_almeida_db




                                          22
23

Mais conteúdo relacionado

Mais procurados

Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveis
elliando dias
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
elliando dias
 
VDI e Projeto OSDVT
VDI e Projeto OSDVTVDI e Projeto OSDVT
VDI e Projeto OSDVT
apsegundo
 

Mais procurados (20)

Mysql para aplicações Web escaláveis
Mysql para aplicações Web escaláveisMysql para aplicações Web escaláveis
Mysql para aplicações Web escaláveis
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Opennebula instalação
Opennebula instalaçãoOpennebula instalação
Opennebula instalação
 
Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15
 
Best Backup
Best BackupBest Backup
Best Backup
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveis
 
Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedores
 
Mysql for IBMers
Mysql for IBMersMysql for IBMers
Mysql for IBMers
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6
 
MySQL 5.7 Multi-Source Replication
MySQL 5.7 Multi-Source ReplicationMySQL 5.7 Multi-Source Replication
MySQL 5.7 Multi-Source Replication
 
UNIFAL - MySQL 5.6 - Replicação
UNIFAL - MySQL 5.6 - ReplicaçãoUNIFAL - MySQL 5.6 - Replicação
UNIFAL - MySQL 5.6 - Replicação
 
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7
 
PostgreSQL Conceitos e aplicações
PostgreSQL  Conceitos e aplicaçõesPostgreSQL  Conceitos e aplicações
PostgreSQL Conceitos e aplicações
 
Goo cloud backup e storage
Goo cloud   backup e storageGoo cloud   backup e storage
Goo cloud backup e storage
 
Tdc2015
Tdc2015Tdc2015
Tdc2015
 
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
 
InfoBrasil 2014 - O sucesso da virtualização em uma instituição federal gasta...
InfoBrasil 2014 - O sucesso da virtualização em uma instituição federal gasta...InfoBrasil 2014 - O sucesso da virtualização em uma instituição federal gasta...
InfoBrasil 2014 - O sucesso da virtualização em uma instituição federal gasta...
 
Goocloud Backup Storage
Goocloud   Backup  StorageGoocloud   Backup  Storage
Goocloud Backup Storage
 
VDI e Projeto OSDVT
VDI e Projeto OSDVTVDI e Projeto OSDVT
VDI e Projeto OSDVT
 

Semelhante a MySQL em 10min - Alexandre Almeida HTI Tecnologia

Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
MySQL Brasil
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
Marco Pinheiro
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
PrinceGuru MS
 
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
iMasters
 

Semelhante a MySQL em 10min - Alexandre Almeida HTI Tecnologia (20)

MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valor
 
Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014
 
MySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicaçõesMySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicações
 
Servidores linux
Servidores linuxServidores linux
Servidores linux
 
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
 
Replicação e alta disponibilidade by wagner bianchi -
Replicação e alta disponibilidade by wagner bianchi -Replicação e alta disponibilidade by wagner bianchi -
Replicação e alta disponibilidade by wagner bianchi -
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvens
 
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
 
Estratégias de escablabilidade para serviços online
Estratégias de escablabilidade para serviços onlineEstratégias de escablabilidade para serviços online
Estratégias de escablabilidade para serviços online
 
BIG DATA na UFSM
BIG DATA na UFSMBIG DATA na UFSM
BIG DATA na UFSM
 
Desenvolvendo serviços escaláveis e de alta performance com MySQL
Desenvolvendo serviços escaláveis e de alta performance com MySQLDesenvolvendo serviços escaláveis e de alta performance com MySQL
Desenvolvendo serviços escaláveis e de alta performance com MySQL
 
Serviços Escaláveis e de Alta Performance com MySQL e Java
Serviços Escaláveis e de Alta Performance com MySQL e JavaServiços Escaláveis e de Alta Performance com MySQL e Java
Serviços Escaláveis e de Alta Performance com MySQL e Java
 
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational Databases2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
 
Novidades do MySQL para desenvolvedores ago15
Novidades do MySQL para desenvolvedores ago15Novidades do MySQL para desenvolvedores ago15
Novidades do MySQL para desenvolvedores ago15
 

Mais de MySQL Brasil

Mais de MySQL Brasil (20)

MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017
 
MySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e UberMySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e Uber
 
MySQL 8.0.1 DMR
MySQL 8.0.1 DMRMySQL 8.0.1 DMR
MySQL 8.0.1 DMR
 
Alta disponibilidade com MySQL Enterprise
Alta disponibilidade com MySQL EnterpriseAlta disponibilidade com MySQL Enterprise
Alta disponibilidade com MySQL Enterprise
 
MySQL Roadmap NoSQL HA Fev17
MySQL Roadmap NoSQL HA Fev17MySQL Roadmap NoSQL HA Fev17
MySQL Roadmap NoSQL HA Fev17
 
Segurança no MySQL
Segurança no MySQLSegurança no MySQL
Segurança no MySQL
 
5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL
 
Alta disponibilidade no MySQL 5.7 GUOB 2016
Alta disponibilidade no MySQL 5.7 GUOB 2016Alta disponibilidade no MySQL 5.7 GUOB 2016
Alta disponibilidade no MySQL 5.7 GUOB 2016
 
MySQL 5.7 como Document Store
MySQL 5.7 como Document StoreMySQL 5.7 como Document Store
MySQL 5.7 como Document Store
 
Enabling digital transformation with MySQL
Enabling digital transformation with MySQLEnabling digital transformation with MySQL
Enabling digital transformation with MySQL
 
Alta Disponibilidade no MySQL 5.7 para aplicações em PHP
Alta Disponibilidade no MySQL 5.7 para aplicações em PHPAlta Disponibilidade no MySQL 5.7 para aplicações em PHP
Alta Disponibilidade no MySQL 5.7 para aplicações em PHP
 
Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7
 
NoSQL no MySQL 5.7
NoSQL no MySQL 5.7NoSQL no MySQL 5.7
NoSQL no MySQL 5.7
 
OpenStack & MySQL
OpenStack & MySQLOpenStack & MySQL
OpenStack & MySQL
 
10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups
 
Estratégias de Segurança e Gerenciamento para MySQL
Estratégias de Segurança e Gerenciamento para MySQLEstratégias de Segurança e Gerenciamento para MySQL
Estratégias de Segurança e Gerenciamento para MySQL
 
MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15
 
Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...
Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...
Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...
 
MySQL para Desenvolvedores de Produto
MySQL para Desenvolvedores de ProdutoMySQL para Desenvolvedores de Produto
MySQL para Desenvolvedores de Produto
 
Alta-disponibilidade com MySQL
Alta-disponibilidade com MySQLAlta-disponibilidade com MySQL
Alta-disponibilidade com MySQL
 

Último

Último (8)

ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo Pagliusi
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
 
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
 
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdfAula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
 

MySQL em 10min - Alexandre Almeida HTI Tecnologia

  • 1. 1
  • 2. <Insert Picture Here> MySQL em 10 minutos - II Alexandre M de Almeida Consultor Sr MySQL
  • 3. Por que utilizar o MySQL? •  O que estão dizendo? –  “Altamente flexível, instalação rápida, disponibilidade de talentos no mercado, rápida formação de talentos, custo zero” Tim T., Pervasive Networks –  “Custo zero de aquisição, flexibilidade (storage engine), diversidade de ferramentas” Laine C., Tango.me –  “Simplicidade e Performance” Mitch P., Sounday –  “Simples, bem aceito por programadores e administradores, e é de graça” Mats K., Sr. Developer @ Oracle 3
  • 4. Por que utilizar o MySQL? •  Flexível –  Storage Engines –  n respostas para 1 pergunta •  Capacitação & Aprendizado –  Comandos simples e intuitivos –  Menor tempo & investimento na capacitação •  Usabilidade –  Grande diversidade de ferramentas GUI –  Ferramentas gratuitas 4
  • 5. Por que utilizar o MySQL? •  Escalabilidade & Alta Disponilidade –  Replicação Nativa –  NDB Cluster (MySQL Cluster) –  Tungsten!, ScaleDB, InfiniDB •  Funcionalidades –  Procedure, Functions & Triggers –  Events –  Funções & Comandos para desenvolvimento SQL 5
  • 6. Por que utilizar o MySQL? •  Transações –  100% ACID –  Transações Distribuídas (XA) •  Gerenciamento & Monitoração –  MySQL Monitoring, MONyog –  Administrator, Nagios, comandos nativos –  Simples & Fácil •  Performance –  Alta performance & altamente configurável 6
  • 7. Por que utilizar o MySQL? •  Baixo TCO –  Sabores: “grátis” ou “pago” (enterprise) –  Manutenção simples, menor downtime, menos $$$ •  Grand Finale –  OpenSource –  Confiabilidade e Robustez compravados –  O mascote é bacaninha –  Pouco exigente quanto ao hardware 7
  • 8. <Insert Picture Here> MySQL Community Tornar o MySQL um banco de dados acessível e disponível à todos 8
  • 9. Mão na massa… Mas, antes de tudo! •  Qual o tipo de aplicação! <Insert Picture Here> •  Banco de dados OLTP ou OLAP? •  Storage Engines? •  Processamento e Processador •  Memória, por favor, memória •  Discos, ah sim, os discos 9
  • 10. Pacotes de Instalação •  Fonte (source) •  Distro (yum, apt-get, urpmi, etc) •  RPM •  Binário –  RedHat, Linux Generic*, Solaris –  MacOS, Suse, FreeBSD –  Uindols 10
  • 11. Por que eu prefiro os binários? •  Preguiça de compilar ;-) •  Não sei usar as melhors opções (e você?) •  Não sei se tenho as bibliotecas: –  mais atualizadas –  mais adequadas e compatíveis entre si (versões) •  É mais rápido (install e performance) •  Permite mais threads estáveis •  Binários de melhor qualidade 11
  • 12. Instalando o MySQL em 10 minutos Instalação e Configuração Básica em 10 passos •  Antes de disparar o cronômetro… •  Consiga seu binário (tar.gz) [root@daredevil ~]# cd /usr/local/ [root@daredevil local]# wget http://dev.mysql.com/get/Downloads/MySQL-5.5/ mysql-5.5.17-linux2.6-x86_64.tar.gz/from/http://ftp.gwdg.de/pub/misc/mysql/ 12
  • 13. 1. Descompactando o pacote baixado •  tar (10s + tempo para lembrar como usar) •  /usr/local ou /opt root@daredevil local]# time tar -zxvf mysql-5.5.17-linux2.6-x86_64.tar.gz mysql-5.5.17-linux2.6-x86_64/support-files/ndb-config-2-node.ini mysql-5.5.17-linux2.6-x86_64/support-files/magic mysql-5.5.17-linux2.6-x86_64/support-files/my-innodb-heavy-4G.cnf … real 0m10.165s user 0m6.305s sys 0m4.350s 13
  • 14. 2. Criação de Usuário e Grupo •  Usuário de sistema do mysqld •  10 segundos (20 se for no escuro) [root@daredevil local]# useradd mysql 14
  • 15. 3. Diretórios •  /var/lib/mysql (normalmente é o default) •  Um para dados outro para logs •  Ideal discos diferentes (depende do HW) •  10 segundos? [root@daredevil local]# mkdir /dados [root@daredevil local]# mkdir /logs 15
  • 16. 4. Link Simbólico •  Facilita na criação de PATHS •  E ajuda num eventual upgrade de versão •  0.05 segundos [root@daredevil local]# ln -s mysql-5.5.17-linux2.6-x86_64/ mysql 16
  • 17. 5. Personalização •  Não é necessário à defaults •  SepararDados & Logs à Back up Raw •  3 minutos no máximo (só quem não fez curso de datilografia leva tanto tempo) [root@daredevil local]# vi /etc/my.cnf pid-file = /logs/mysqld.pid [mysqld] [client] server-id = 100 port = 3306 port = 3306 socket = /logs/mysql.sock user = mysql socket = /logs/mysql.sock datadir = /dados basedir = /usr/local/mysql log-error = /logs/errorlog.err log-bin = /logs/binlog relay-log = /logs/relaylog 17
  • 18. 7. Sistema de Dados •  Script prepara o datadir e logs [root@daredevil local]# cd /usr/local/mysql [root@daredevil mysql]# scripts/mysql_install_db Installing MySQL system tables... OK Filling help tables... OK … 18
  • 19. 8. Subir o servidor •  Manual à mysqld_safe •  Automático à mysql.server [root@daredevil mysql]# bin/mysqld_safe & 111027 15:48:44 mysqld_safe Logging to '/logs/errorlog.err'. 111027 15:48:44 mysqld_safe Starting mysqld daemon with databases from /dados 19
  • 20. 9. Mínimo baseline de Segurança •  Script: mysql_secure_installation –  Senha para root (renomear é o ideal) –  Elimina acesso de qq host (%) –  Elimina acesso convidado (anônimo) –  “Dropa” banco de dados test 20
  • 21. 10. Pronto para uso •  Fala sério… 6min 38seg •  Ajuste o PATH como requerido [root@daredevil local]# export PATH=$PATH:/usr/local/mysql/bin [root@daredevil local]# mysql –uroot –p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 2 Server version: 5.5.17-log MySQL Community Server (GPL) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> 21
  • 22. <Insert Picture Here> OBRIGADO! Alexandre M de Almeida alexandremalmeida.com.br alex_almeida_db 22
  • 23. 23