Instalando MySQL 5.5 Parte 1 – Uma unica instancia

Hoje vou ensinar como instalar um servidor MySQL de forma simples. Com apenas uma unica instância, na segunda parte deste artigo, vou ensinar a instalar varias instâncias do MySQL e controla-las através do mysqld_multi.

Para este tutorial estou utilizando:

    VMWare
    CentOS 5.6 - 64bits
    512MB RAM
    40GB DISCO
    Instalação sem interface gráfica, somente linha de comando

Dito isso, vamos ao que realmente interessa:

  1. Vamos criar a estrutura de diretórios que vamos trabalhar com nossa instalação do MySQL, para este tutorial vou instalar na raiz da partição:
    cd /
    mkdir mysql
    cd mysql
  2. Vamos ao site de Downloads do MySQL e baixar da ultima versão Community Server que hoje é a 5.5.11. Utilizaremos a compilação Linux Generic e buscar pelo pacote tar.gz da sua versão de sistema operacional:
    wget http://mysql.cce.usp.br/Downloads/MySQL-5.5/mysql-5.5.11-linux2.6-x86_64.tar.gz
  3. Uma vez baixado o pacote do MySQL, vamos agora descompactar o pacote com o comando baixado:
    tar -vzxf mysql-5.5.11-linux2.6-x86_64.tar.gz
  4. Agora vamos apenas ajustar o nome da pasta para algo mais legível:
    mv mysql-5.5.11-linux2.6-x86_64 core-5.5.11
  5. Feito isso criaremos um link simbólico, pois o MySQL nos exige que sua pasta seja nomeada exatamente mysql
    ln -s core-5.5.11 mysql
  6. Após, criaremos a estrutura de diretórios da nossa instância do MySQL:
    mkdir 3306
    mkdir 3306/data
    mkdir 3306/logs
  7. O próximo passo é criar os bancos de dados padrões do MySQL. Mas antes disso, temos que definir com qual usuário o MySQL vai rodar, como padrão, sempre criamos (caso ainda não existe) um usuário com o próprio nome MySQL, vamos lá:
    useradd mysql
    Com nosso usuário criado no sistema, vamos alterar as permissões das pastas do MySQL para este usuário:
    chown -R mysql:mysql /mysql/
  8. Vamos então, criar os bancos de dados padrões do MySQL, dentro da nossa pasta/link simbólico mysql temos uma série de pastas, uma delas chamada scripts, dentro dela temos um script que faz a criação da estrutura de banco de dados necessária para iniciarmos nossa instância do MySQL, para rodar este script, vamos passar 3 parâmetros:
    user – usuário proprietário das pastas que serão criadas
    basedir – pasta onde instalamos o nosso MySQL (fontes)
    datadir – pasta onde desejamos que seja criada a estrutura de banco de dados
    No nosso caso, o comando irá ficar assim:
    cd /mysql/mysql/scripts/
    ./mysql_install_db --user=mysql --basedir=/mysql/mysql --datadir=/mysql/3306/data/
    Vamos receber um retorno na tela, o que temos que nos atentar é para receber 2 OK’s no inicio do retorno:

    Installing MySQL system tables...
    OK
    Filling help tables...
    OK

  9. Agora vamos criar nosso arquivo de configurações o my.cnf, vamos configurar alguns parâmetros básicos para subir nossa instância:
    datadir – caminho para a pasta onde está localizado o nosso datadir
    socket – onde vamos salvar o unix socket
    user – usuário que o mysql vai utilizar para subir nossa instância e acessar os arquivos no disco
    log-error – local e nome do arquivo de logs (muito importante, pois nele que diagnosticamos maior parte dos problemas que acontecem no nosso servidor MySQL)
    pid-file – arquivo onde ficará o PID do MySQL

    Vamos então de fato criar nosso arquivo de configuração:
    vi /mysql/my.cnf
    O conteúdo do nosso arquivo deve ficar assim:
    [mysqld]
    datadir=/mysql/3306/data
    socket=/mysql/3306/mysql.sock
    user=mysql
    [mysqld_safe]
    log-error=/mysql/3306/logs/mysqld.log
    pid-file=/mysql/3306/mysqld.pid

  10. E finalmente, vamos subir nossa instância do MySQL:
    cd /mysql/mysql
    bin/mysqld_safe --defaults-file=/mysql/my.cnf &
  11. Pronto, agora nosso MySQL já está no ar, vamos apenas fazer mais um ajuste: Colocar a pasta do MySQL no PATH para que possamos acessa-lo de qualquer lugar do sistema:
    export PATH=$PATH:/mysql/mysql/bin/
  12. Para se conectar no banco, via TCP/IP usamos:
    mysql -u root -h127.0.0.1
    ou via UNIX socket
    mysql -u root --socket=/mysql/3306/mysql.sock

Lembrando que as boas práticas de segurança do MySQL nos pedem para executar 3 tarefas:

  1. Remover o banco de dados test, pois nesse banco de dados, todos os usuários tem acesso total, e pode ser que algum usuário crie uma procedure com um loop infinito para inserir dados até que seu disco fique 100% cheio
  2. Remover o usuário anonymous, por motivos óbitos
  3. Mudar a senha do user root, pois por padrão ela vem em branco

É isso aí pessoal, espero que tenham gostado, postem suas dúvidas e sugestões, e fiquem ligados, no próximo post, vou ensinar a subir N instâncias em um mesmo servidor, pratica esta muito usada para não super-dimensionar o hardware, Abraços.

Gostou ? Ajude e Compartilhe!
Esta entrada foi publicada em instalação, MySQL, mysqld. Adicione o link permanente aos seus favoritos.
  • pinguim

    Hello my friend,

    I am trying to configure two databases on two diferent paths, with the same instance of mysql server…
    Do you kwon how to do it?

    Thanks anyway.