Instalando e Configurando MySQL no Ubuntu Server

O MySQL é um sistema de gerenciamento de banco de dados open-source bastante utilizado. Ele é um banco de dados relacional e usa SQL (Structured Query Language) para gerenciar seus dados.

Neste post vamos instala-lo em um servidor Ubuntu Server. Primeiramente vamos atualizar o repositório e depois instalar o MySQL.

$ sudo apt-get update
$ sudo apt-get install  mysql_server

No procedimento acima será pedido uma senha do usuário mysql root. Defina uma, repita a senha e prossiga.

O próximo passo é utilizar um comando onde realiza alguns procedimentos de segurança:

$ mysql_secure_installation

Algumas perguntas serão feitas. A primeira é se queremos alterar a senha do usuário root do mysql, depois vem algumas perguntas sobre remover usuário Anônimo e se deseja remover os privilégios de acesso remoto do usuário root. Escolha entre Y ou N e aperte enter.

Pronto nosso  MySQL está instalado, agora precisamos configurar. Vamos começar acessando o MySQL e criando um usuário para acesso remoto:

$ mysql -u root -p

Aperte enter e sera pedido a senha do usuário root do MySQL. Dentro dele vamos digitar os seguintes comandos:

mysql>  CREATE USER 'remoto'@'%'  IDENTIFIED BY 'senhaUsuarioRemoto';
mysql>  GRANT ALL ON * . * TO 'remoto'@'%'  IDENTIFIED BY 'senhaUsuarioRemoto';
mysql> FLUSH PRIVILEGES;
mysql> \q

Pronto usuário criado e privilegios concedidos.  Agora precisamos entrar no arquivo de configuração do MySQL e comentar duas linhas.

$ sudo vi /etc/mysql/my.cnf

Comente as linhas

#bind-address = 127.0.0.1
#skip-external-locking

Salve e feche o arquivo  ( :wq ). Reinicie o serviço mysql

$ sudo service mysql restart

Por último altere as regras o firewall. O servido utilizado para este post possui o ufw, e foram necessários os seguintes comandos:

$ sudo ufw allow 3306/udp
$ sudo ufw allow 3306/tcp
$ sudo ufw reload

Pronto nosso MySQL já está funcionando e preparado para receber conexão remota.

Ambiente de Desenvolvimento PHP com o Docker Compose

Docker

Docker Compose é uma ferramenta para execução de aplicativos docker multi-containers o que nos ajuda muito a iniciar um ambiente inteiro com um comando somente.

Neste post vamos utilizar o Docker Compose para configurar um ambiente de desenvolvimento básico, com o PHP, Apache e MySQL.Vamos utilizar dois containers Docker, um para o PHP e Apache e outro para o banco de dados MySQL. Vamos utilizar imagens oficias do Docker Hub.

Primeiramente vamos criar o container para o servidor WEB. Para isso dentro de uma pasta vamos criar um arquivo chamado Dockerfile contendo as seguintes linhas:


Nos utilizamos uma imagem do repositório oficial, este vem com o PHP 5.6 e o apache. Além disso utilizamos um comando para executar (RUN) a instalação da extensão mysqli. Por hora vamos instalar somente esta extensão, caso queira instalar mais extensões de uma olhada na documentação da imagem que foi utilizada.

O próximo passo é criar um arquivo chamado docker-compose.yml onde teremos as configurações de nossos dois containers. Vamos inserir as seguintes linhas nele:

O próximo passo agora é criar a pasta www/ e um arquivo com o nome index.php dentro da pasta www/ com o seguinte código:

Agora vamos colocar para rodar com o comando docker-compose up. Com este comando será mostrado em um modo verbose, ou seja, cuspindo todas as informações no terminal. Caso queira rodar em segundo plano bastar utilizar o seguinte comando: docker-compose up -d

Este post é o basico do que se pode fazer com o docker, mais com esse básico já podemos ter nosso ambiente de desenvolvimento rodando rapidamente e totalmente independente de nossa maquina.

Rodando MySQL no Docker

Docker

Para facilitar muito a nossa vida de desenvolvedor temos o Docker com seus containers que até parecem mágicos. Neste post vou mostrar como subir um servidor MySQL rapidamente para testes ou uso em um desenvolvimento de uma aplicação.

O primeiro passo é executar o comando setando alguns parâmetros, como o nome da imagem, variáveis ambientes do MySQL, o apontamento da porta externa e interna e por ultimo o nome da imagem no repositório oficial do Docker.

$ docker run --name byteslivres-mysql-1 -e MYSQL_ROOT_PASSWORD=12345 
-e MYSQL_DATABASE=teste -d -p 13306:3306 mysql:5.7.10

Pronto. Depois deste comando o MySQL estará rodando em sua maquina. Para testar abra seu gerenciador de banco de dados e tente conectar com a seguintes configurações:

Host: localhost
Porta: 13306
Usuário: root
Senha: 12345

Tudo dando certo ira aparecer no seu gerenciador o banco de dados teste vazio. Bem agora para pararmos o servidor basta utilizar o seguinte comando:

$ docker stop  byteslivres-mysql-1

Pronto. Caso queira subir novamente o mesmo banco não é necessário utilizar o primeiro comando mostrado. Basta utilizar este comando:

$ docker start  byteslivres-mysql-1

Otimizando MySQL no CentOS 6

Depois de instalar o MySQL em um servidor centOS o mesmo vem com suas configurações padrões. Nesse post vamos ver como otimizar e melhorar um pouco o nosso banco de dados.

O primeiro passo é abrir o arquivo de configuração com um editor de texto preferido. Por padrão este arquivo vem dentro do diretório /etc com o nome de my.cnf .

# vim /etc/my.cnf

Depois de aberto o arquivo vamos inserir estas linhas, salvar o arquivo e fecha-lo.

set-variable = key_buffer=312M
set-variable = max_allowed_packet=1M
set-variable = table_cache=20000
set-variable = sort_buffer=1M
set-variable = record_buffer=1M
set-variable = myisam_sort_buffer_size=64M
set-variable = thread_cache=8
set-variable = thread_concurrency=8
set-variable = max_connections=10000
set-variable = net_write_timeout=30
set-variable = connect_timeout=2
set-variable = wait_timeout=30

Depois de realizado o processo citado acima execute o comando para reiniciar o MySQL, ou para iniciar.

# service mysqld restart

ou

# service mysqld start

Pronto agora é só parti para o abraço.

Criar link simbólico do mysql.sock local para MAMP

Mamp
MAMP

Quando instalado o MAMP ele vem geralmente com as conexões do banco via socket desabilitadas. Para habilitar esta recurso basta utilizar estes simples códigos:

sudo mkdir /var/mysql
 
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock
 
sudo chown _mysql /var/mysql/mysql.sock
 
sudo chmod 777 /var/mysql/mysql.sock

Comandos básicos para manutenção de um servidor CentOS Linux

logo-powered-by-centos

Entrei nesse mundo de servidores linux, e como de costume sempre começamos do básico, com  comandos simples. Venho neste post apresentar alguns comandos que servem muito para quem esta começando. Estou usando um servidor CentOS.

O primeiro comando lhe mostra se o servidor é 32 ou 64 bits.

1
 # uname -m

O comando útil para monitorar quanto tempo a maquina está ligada e a carga de trabalho que o servidor esta tendo no  ultimo minuto é o uptime.

1
 # uptime

Start, Stop e Reload no Apache.

Para Iniciar (start) o apache utilize o comando:

1
 # apachectl start

Para Parar(Stop) o apache basta utilizar este comando:

1
 # apachectl stop

Para reiniciar (reload) o apache utilize o comando:

1
 # apachectl restart

Outra opção para reiniciar o apache pode ser este comando:

1
 # service httpd restart

Stop, Start e Reload Mysql

Para Iniciar (start) o mysql utilize o comando:

1
 # service mysqld start

Para Parar(Stop) o mysql basta utilizar este comando:

1
 # service mysqld stop

Para reiniciar (reload) o mysql utilize o comando:

1
 # service mysqld restart

Ligar, desligar e reiniciar a maquina.

Um comando importante que um dia você vai precisar utilizar é o de desligar ou reiniciar a maquina (“quando voce faz uma cagada muito grande. kk”)
Desligar:

1
 # halt
1
 # poweroff

Comando shutdown desligar.

Desligar imediatamente

1
 # shutdown -h now

Desligar em 40 minutos

1
 # shutdown -h 40

Comando para reiniciar:

1
 # reboot

Comando shutdown reiniciar.
Reiniciar imediatamente

1
 # shutdown -r now

Reniciar em 40 minutos

1
 # shutdown -r 40

Identificar Versão do CentOS

Para identificar a versão do CentOS basta utilizar o seguinte comando:

1
 # cat /etc/redhat-release

Criar senha para o Usuario root

Basta utilizar o seguinte comando:

1
$ sudo passwd root

O terminal solicitará a senha e a confirmação de senha.

Continuarei a atualizar este post com alguns comandos a mais.

Informações sobre Memoria e CPU

Para visualizar informações do processador basta utilizar o seguinte comando:

1
 # cat /proc/cpuinfo

Ja para visualizar status da memoria utilize o seguinte comando:

1
 # cat /proc/meminfo

Uso do disco

Para verificar o uso do disco  e do tmpfs vamos utilizar o seguinte comando:

1
 # df -h

Espaço Utilizado, Disponível de partição

Para verificar o uso do disco e do tmpfs vamos utilizar o seguinte comando:

1
 # df -l

 

Alterar Hora

Para alterar o horário do servidor utilize o seguinte comando:

1
 # date -s "xx:xx:xx"

Onde xx:xx:xx é a hora, minuto e segundos.
Depois utilize o seguinte comando para gravar no bios.

1
 # clock -w

Apagar conteúdo de arquivo

1
 # echo "" > nomearquivo

Status do RAID

1
 # cat /proc/mdstat

Listar Tamanho de Pastas

1
 $ du -hs *

Alterar Hostname

Alterando sem desligar a maquina. (Porem depois de reiniciado voltara ao anterior)

1
 # /bin/hostname novo.hostname

Alterando o hostname permanente, porem necessário reiniciar a maquina

1
 # vim /etc/sysconfig/network
1
2
NETWORKING=yes
HOSTNAME=aquiNomeDo_HostName

depois: :wq

Pronto!

Conectando ao banco de dados Mysql – PHP

Salve galera, o banco de dados mais usado em conjunto com o PHP para desenvolvimento web é o MySQL, encontramos quilos e quilos de documentação sobre ele. Hoje vamos fazer uma simples conexão ao banco de dados usando o PHP.

1
2
3
4
5
6
$conexao = mysql_connect("servidor","usuario","senha"); 
  mysql_select_db("nomedobancodedados"):
 
 
$conexao = mysql_connect("localhost","root",""); 
  mysql_select_db("bd_blog"):

Uso essa variável $conexa para no fim da execução do código da um close, usando desse jeito

1
 mysql_close($conexao);

Buscas com linhas zebradas – PHP MySql

Muitas vezes precisamos imprimir uma consulta do banco, para não ficar bagunçada  a impressão colocamos uma linha de uma cor e a outra de outra cor.

1
2
3
4
<style>
.row1 { background-color:#F5F5F5 }
.row2 { background-color:#E4E4E4; }
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
  $conexao = mysql_connect("localhost","root","");
  mysql_select_db("cadastro");
  
  $sql = mysql_query("SELECT * FROM ajax_ref");
 
 while ($linha = mysql_fetch_array($sql)){
   $titulo = $linha[titulo] ;
 $estilo = ( (++$i % 2) == 0 ) ? 'row1' : 'row2' ;
 
 echo " <div class=\"{$estilo}\">$titulo</div>";
  }
 
?>