Pular para o conteúdo

Introdução ao MySQL

No fórum do Viva o Linux tenho percebido diversas perguntas sobre o MySQL, dúvidas sobre conexão, direitos de usuários, dentre outros detalhes básicos. Se você não conhece nada ou quase nada sobre o MySQL, chegou a hora de aprender um pouco mais sobre ele!
Marcos Miras marcosmiras
Hits: 83.265 Categoria: Banco de Dados Subcategoria: MySQL
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Parte 6: Segurança e configuração

Segurança no MySQL

Bom pessoal, agora que já conhecemos o MySQL um pouco mais, temos que saber duas coisas bem importantes nesse mundinho de informática, a performance e a segurança, essas duas palavras podem ocasionar uma promoção ou uma demissão, então seguiremos atentos as duas!

Primeiro queria falar brevemente sobre segurança, existe um detalhe no MySQL que me incomoda e que todos nós conhecemos, o /root/.bash_history. Lá fica armazenado todo o histórico de comandos do root, mas existe também o /root/.mysql_history, Porém existem uma diferença entre ambos.

Quando criamos um novo usuário no Linux, percebemos que no momento de informar a senha ele não exibe no bash, logo, não existe inserção desse determinado dado no arquivo ".bash_history". No MySQL é diferente, quando criamos um usuário e informamos a senha, ele exibe no bash, sendo assim, existe inserção no arquivo ".mysql_history".

Executando o tail verifiquemos o conteúdo do .mysql_history:

# tail -f /root/.mysql_history
CREATE USER estagiario;
GRANT SELECT minha_base.* TO 'estagiario'@'%' identified by 'estag';
SHOW GRANTS FOR 'estagiario'@'%';
REVOKE SELECT ON minha_base.* FROM 'estagiario'@'%';
SET PASSWORD FOR 'estagiario' = PASSWORD('nova_senha');
DROP USER 'estagiario';

Preste atenção na penúltima linha. Puxa, interessante não!? Particularmente sempre agendo uma tarefa no cron para excluir o arquivo ".mysql_history". Lembre-se também de proteger em seu firewall a porta 3306 (porta de comunicação do MySQL), liberando somente o necessário!

Configuração do MySQL

Bem, essa parte não é tão complicada como parece, o MySQL vem com alguns arquivos de configuração:
  • my-small.cnf - Servidores com 64 a 128 megas de memória RAM dedicadas ao MySQL.
  • my-medium.cnf - Servidores com 128 a 256 megas de memória RAM dedicadas ao MySQL.
  • my-medium.cnf - Servidores com 256 a 512 megas de memória RAM dedicadas ao MySQL.
  • my-large.cnf - Servidores com 512 megas a 1 Gb de memória RAM dedicadas ao MySQL.
  • my-huge.cnf - Servidores com mais de 1 Gb de memória RAM dedicada ao MySQL.

Mas eu prefiro um aqui do VOL que é bem explicadinho, funciona muito bem: Configuração otimizada para servidores MySQL super utilizados.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. O software
   2. Armazenamento e criação
   3. Criando tabela e inserindo, atualizando e excluindo dados
   4. Manipulando a tabela
   5. Permissões
   6. Segurança e configuração
   7. Conclusão

Ruby + Rails + Gem + Mongrel Cluster + Apache + MySQL n0 Red Hat EL

PhpPgAdmin e PhpMyAdmin

Integridade dos arquivos do sistema

Comunity ENTerprise Operating System, o CentOS

MariaDB + phpMyAdmin no Ubuntu 12.04 LTS

Replicação em banco de dados MySQL

SQL Dicas & Truques (versão 0.1)

Cluster MySQL - Instalação e configuração

Sincronização segura entre bancos de dados MySQL utilizando SJA

#1 Comentário enviado por maran em 24/09/2008 - 09:23h
WoW fala ai Marcos, tudo na paz?
Ainda não li tudo, porém, estou ancioso para poder chegar em casa e ler com calma, já esta impresso :)

Show de bola velinho, não conheço nada de Banco de Dados, e isso ai, já irá ser uma bela porta de entrada,

Parabéns, é isso ae, 10!

Abraços
#2 Comentário enviado por marcosmiras em 24/09/2008 - 09:32h
Tudo tranquilo Maran, obrigado pelo comentário e o que precisar estamos aí!

[]'s
Marcos Miras
#3 Comentário enviado por JLAUDIRT em 24/09/2008 - 10:03h
Infelizmente ainda estou preso ao window por ter de utilizar o delphi para desenvolver aplicativos para os meus clientes.
Estou estudando o mysql e percebi que ele nao aceita muitos selects (uns dentro dos outros) por exemplo:

"select table1.campo1,table1.campo2,(select table2.campo2 from table2 where table2.campo1 = table1.campo1) as descricao from table1 order by campo1;"


Qual seria a solução para este tipo de select?
#4 Comentário enviado por jose.freitas.rj em 24/09/2008 - 11:56h
pessoal sou novo no linux e uso fedora 8 e mexo um pouco com mysql e postgresql. com o postgresql consigo fazer qualquer maquina da rede acessar meu banco de dados, já com o mysql não sei fazer por que ainda não encontrei nenhum tutorial explicando isso. alguém sabe configurar o mysql no fedora 8 pra ser acessado por qualquer maquina da rede?
abraços...
#6 Comentário enviado por jose.freitas.rj em 24/09/2008 - 13:25h
marcos, show de bola!!! aieuaiueiaueiua...
funcionou!!!
valeu pela ajuda!!!
simples e eficaz!!!
valeu pela dica!!!
FIQUE COM DEUS!!!
#7 Comentário enviado por joaomc em 24/09/2008 - 13:28h
Lembrem-se: Multithreads *não* é o mesmo que uso de mais do que um processador.
#8 Comentário enviado por f_Candido em 24/09/2008 - 16:26h
Muito Bom. Parabéns.
Sem comentários.


Abraços
#9 Comentário enviado por andre_asn em 24/09/2008 - 17:13h
Gostei muito do seu artigo mas tive um probleminha uso o debian 4.0 e logo de cara deu este :

download@MATRIX:~$ su
Password:
MATRIX:/home/download# apt-get mysql mysql-server mysql-client
E: Operação mysql inválida

Mudando um pouco o comando para instalar da este outro erro :

MATRIX:/home/download# apt-get install mysql mysql-server mysql-client
Lendo lista de pacotes... Pronto
Construindo árvore de dependências... Pronto
E: Impossível achar pacote mysql
MATRIX:/home/download#
#12 Comentário enviado por andre_asn em 24/09/2008 - 22:03h
Boa noite Marcos Miras mas ja instalei o repositório mas da sempre o mesmo problema:

download@MATRIX:~$ su
Password:
MATRIX:/home/download# apt-get mysql mysql-server mysql-client
E: Operação mysql inválida
MATRIX:/home/download#
#13 Comentário enviado por slacklex em 24/09/2008 - 22:55h
Show de bola, amanhã imprimo no serviço... :-)
#14 Comentário enviado por marcosmiras em 25/09/2008 - 09:46h
@andre_asn: Houve um erro de digitação no artigo, o comando correto é:
apt-get install mysql mysql-server mysql-client
Faltou o "install", vou pedir para a equipe de moderação corrigir!

@slacklex: Obrigado por seu comentário!

[]'s
Marcos Miras.
#15 Comentário enviado por andre_asn em 25/09/2008 - 09:56h
Bom dia apenas informando que não deu certo ainda ja estou com o source.list com o abaixo:

#
#deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 DVD Binary-1 20070407-11:40]/ etch contrib main

#deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 DVD Binary-1 20070407-11:40]/ etch contrib main

deb http://ftp.br.debian.org/debian/ etch main
deb-src http://ftp.br.debian.org/debian/ etch main

deb http://security.debian.org/ etch/updates main contrib
deb-src http://security.debian.org/ etch/updates main contrib

deb http://mirrors.kernel.org/debian etch main contrib non-free
deb-src http://mirrors.kernel.org/debian etch main contrib non-free
deb http://security.debian.org etch/updates main contrib non-free
deb-src http://security.debian.org etch/updates main contrib non-free
deb http://www.debian-multimedia.org etch main

deb http://www.debian-multimedia.org etch main

Quando dou o resto do comando:

Next we open /etc/apt/preferences and specify that apt should use the debian.mytso.net repository with priority over the default Debian repositories:

vi /etc/apt/preferences

Diz que não tenho permissão para adicionar mesmo usando o comando root
#16 Comentário enviado por brunocontin em 26/09/2008 - 08:53h
Show de bola, poderia ter uma continuidade rsss, Pois o material ficou muito bem explicado.
#17 Comentário enviado por fredcrs em 26/09/2008 - 08:55h
show de bola
+favoritos
+10
#18 Comentário enviado por marcosmiras em 26/09/2008 - 09:26h
Obrigado pelos comentários!

[]'s
Marcos Miras
#19 Comentário enviado por patriques em 05/04/2009 - 00:31h
Ótimo artigo.. parabéns!
luz e paz...
#20 Comentário enviado por cesar em 18/08/2009 - 14:57h
Muito bom!

Parabéns.
#21 Comentário enviado por dgnonline em 23/11/2009 - 15:10h
Parabéns cara ;D

VIVA O LINUX
#22 Comentário enviado por francislei bowen em 11/03/2010 - 19:19h
Olá,tenho que criar um site em que sua estrutura é silmples mas....não tenhu um conhecimento bom com banco de dados,e uql seria o melhor a ser inserido no site....e como fazer a configuração se vcs, se disponibilizarem algum material disponivel eu agradeço muito muito mesmo....estou ferrado se não criar um quanto antes....desde já agradeço a todos pela atenção.
Francislei
#23 Comentário enviado por pais em 22/05/2011 - 17:02h
root@alencar-desktop:/home/sistema# groupadd mysql
root@alencar-desktop:/home/sistema# useradd -g mysql mysql
root@alencar-desktop:/home/sistema# cd /usr/local
root@alencar-desktop:/usr/local# tar -zxvf mysql-4.0.13.tar.gz
tar: mysql-4.0.13.tar.gz: Não é possível open: Arquivo ou diretório não encontrado
tar: Erro não é recuperável: saindo agora
tar: Child returned status 2
tar: Saindo com estado de falha devido a erros anteriores.
Eu já tinha tentado instalar antes destes comandos.
Cheguei até aquele ponto onde a tela fica azul e uma barra do lado direito vermelha cliko em ok mas a tela não envia nenhum resultado .
Todo comando de instalação ou de remoção da esta mensagem.

Impossível travar o diretório de administração (/var/lib/dpkg/), está em uso por outro processo?
Adriano: minha distro é o Kubuntu 10.4
#24 Comentário enviado por fndiaz em 11/04/2012 - 08:55h
Parabéns pela iniciativa!! Artigo mto bom!
#25 Comentário enviado por FOCADECKIII em 13/09/2012 - 20:35h
Boa noite!!
Sou novo aqui, já li e tentei trabalhar com bancos de dados de uma forma autodidática, mas devido a complexidade de alguns comando e regras a serem implementadas aos dados fica que meio confuso aprender. Alguém sabe um meio de aprender sobre banco de dados de uma forma mais simples?
Agredecido.

Att focadeckIII
#26 Comentário enviado por DebianWoman em 18/11/2012 - 18:57h
Muito bom!!!
Explicou melhor que o livro que estou lendo.
Muito obrigada pela sua contribuição.

Artigo excelente.

Contribuir com comentário

Entre na sua conta para comentar.