Avançar para o conteúdo principal

Servidor Mysql com Replicação em Freebsd


Boas noites, este é mais um dos meus tutoriais que elaborei quando estava a configurar um servidor com Mysql em FreeBsd.
Da experiência que tive ao instalar Mysql no Freebsd é que o serviço de dados corre com uma velocidade espectacular.
Por isso para quem pretende ter um servidor Mysql com um óptimo de desempenho aconselho a usar o Sistema Operativo Freebsd.
No final do tutorial explico tambem como configurar 2 servidores Mysql para fazerem replicação em entre eles em tempo real.

Podem fazer o download do Sistema em:
http://www.freebsd.org/

Escolher o layout do nosso teclado
Atribuir um nome ao nosso servidor mysql
Escolher os componentes a instalar, caso pretenda configurar Jails no Freebsd deve escolher tambem a instalação do código fonte ( src )
Escolher o método para particionar o disco.
Configurar uma password para o utilizador root, para quem nunca trabalhou com sistemas Unix/Linux este utilizador é o super administrador do sistema, e só deve ser usado pelo administrador apenas para efectuar configurações no Servidor.
Seleccionar a placa de rede para disponível.
Configurar o IP da maquina, neste tutorial apenas vamos usar IP v4.

Configurar o servidor de DNS, neste caso utilizei os servidores da google, mas numa configuração real devem utilizar o vosso servidor DNS. De qualquer forma funciona com um ou com outro.
Configurar os Serviços que queremos que iniciem com o sistema operativo. Neste caso apenas optei com iniciar o serviço SSH que nos irá permitir aceder ao servidor através de uma ligação encriptada.
Neste passo iremos criar um utilizador, pois é sempre boa politica aceder ao sistema através de um utilizador que não seja super admin e só mesmo em casos de configuração aceder com o root
Instalação finalizada vamos então reiniciar o sistema :)

-------------------------------------MYSQL SERVER -------------------------------------

INSTALAÇÃO
Use este comando para instalar
# cd /usr/ports/databases/mysql50-server && make install clean
INICIANDO O MySQl
# /usr/local/etc/rc.d/mysql-server forcestart
Obs.: verificar se o mysql está a funcionar
# ps u | grep mysql
Deve Devolver algo do tipo
root 59670 0.0 0.0 348 208 p0 R+ 9:36AM 0:00.00 grep mysql
BASE DE DADOS
Eu  pessoalmente achei mais viável modificar a origem da DB mysql.
Ir ao seguinte directório
# cd /var/db
Mover o directório mysql
# mv mysql /usr/local/
Criar um link simbólico
# ln -s /usr/local/mysql mysql

Especificando o USER que executa o daemon mysql
# cd /usr/local
# chown -R mysql mysql
Editar o ficheiro de arranque
# vi /etc/rc.conf
Adicionar a seguinte linha para o mysql carregar no arranque
mysql_enable="YES"
Restart ao Mysql
# /usr/local/etc/rc.d/mysql-server restart
Fazer um reboot ao servidor para verificar se fica tudo OK
# reboot
PASSWORD DO ROOT
# mysqladmin -u root password novapassword
Modificar as permissões de acesso a base de dados para qualquer Host se poder conectar a mesma.
Ligação ao mysql
# mysql -u root -p
Colocar a password.
Usar a base de dados com o nome mysql
> use mysql;
Seleccionar a tabela user
> select host, user from user;
Fazer um update a tabela alterado o host para % , isto quer dizer que qualquer host se pode ligar remotamente ao mysql.
> update user set host=’%’ where user=’root’ and host=’127.0.0.1’;

Actualizar privilégios
>f lush privileges;
Colocar uma password para o utilizador root aceder do exterior
> SET PASSWORD FOR 'root'@'%' = PASSWORD('password');
> FLUSH PRIVILEGES;
Atenção eu neste caso configurei o utilizador root para aceder remotamente, no caso de uma configuração real devem depois remover esta permissão e criar um utilizador com menos privilégios para aceder á base de dados.

--------------------------Configurar replicação Bidireccional -------------------------
Servidor Local
Ir para o directório que contem os templates de configurações do mysql

#cd /usr/local/share/mysql/
Copiar o template para a directoria /usr/local/etc/ com o nome my.cnf. Este ficheiro será carregado sempre que o  mysql iniciar.

#cp /usr/local/share/mysql/my-large.cnf /usr/local/etc/my.cnf
Editar o ficheiro my.cnf e editar ou adicionar as configurações abaixo descritas na zona [mysqld]

#vi /usr/local/etc/my.cnf
server-id=1 #id do servidor tem que ser todos diferentes
master-host=10.10.10.2  #ip do servidor de onde se quer replicar os dados
master-user=slave_user #utilizador com permissões de replicação
master-password=password #password do utilizador
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 1
log-bin=/var/db/mysql/mysql-bin.log
log-bin-index=/var/db/mysql/mysql-bin.index
log-slave-updates
replicate-do-db=db_name
binlog-do-db=db_name
relay-log = /var/lib/mysql/relay-bin
relay-log-index = /var/db/mysql/relay-bin.index
relay-log-info-file = /var/db/mysql/relay-bin.info
Guardar o ficheiro e fazer restart ao serviço mysql
#/usr/local/etc/rc.d/mysql-server restart
#mysql –uutilizador -ppassword
> SHOW MASTER STATUS;
> START SLAVE;
> SHOW SLAVE STATUS\G;
>quit;
No servidor Remoto ou Secundário
Ir para o directório que contem os templates de configurações do mysql
#cd /usr/local/share/mysql/
Copiar o template para a directoria /usr/local/etc/ com o nome my.cnf. Este ficheiro será carregado sempre que o  mysql iniciar.
#cp /usr/local/share/mysql/my-large.cnf /usr/local/etc/my.cnf
Editar o ficheiro my.cnf e editar ou adicionar as configurações abaixo descritas na zona [mysqld]
#vi /usr/local/etc/my.cnf
server-id=2 #id do servidor deve ser sempre diferente
master-host=10.10.10.1 #ip do servidor de onde se quer replicar os dados
master-user=slave_user #utilizador com privilégios de replicação
master-password=password #password do utilizador
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 2
log-bin=/var/db/mysql/mysql-bin.log
log-bin-index=/var/db/mysql/mysql-bin.index
log-slave-updates
replicate-do-db=db_name
binlog-do-db=db_name
relay-log = /var/db/mysql/relay-bin
relay-log-index = /var/db/mysql/relay-bin.index
relay-log-info-file = /var/db/mysql/relay-bin.info
Guardar o ficheiro e fazer restart ao serviço mysql
#/usr/local/etc/rc.d/mysql-server restart
#mysql –uutilizador -ppassword
> SHOW MASTER STATUS;
> START SLAVE;
> SHOW SLAVE STATUS\G;
>quit;
Importante:
Se após esta configuração os servidores não começarem a replicar execute alguns comandos de emergência:
#mysql –uutilizador –ppassword
>stop slave;
>reset slave;
>start slave;

Comentários

Mensagens populares deste blogue

3 Formas de configurar o Wi-Fi no ESP8266

3 Formas de  configurar o Wi-Fi no ESP8266 O nosso famoso ESP8266 veio para ficar, cada vez mais este microcontrolador é utilizado para desenvolver dispositivos fantásticos, é verdade que o ESP pode ser utilizado como um simples MCU , mas é a sua capacidade de se ligar a uma rede Wi-Fi, faz dele a escolha perfeita no que toca dipositivos IoT . Este artigo tem foco em três diferentes soluções que permitem programar o ESP de forma a que este se consiga ligar a uma rede Wi-Fi. É sabido que da primeira vez que o ESP é energizado este tem de conhecer ou vir a conhecer o SSID e a Password configurada no Access Point ao qual o queremos conectar de forma a fazer para da rede e ter acesso à Internet se assim for necessário. Vamos então ver como implementar as três soluções, analisar cada uma delas e ponderar os prós e contras e cada uma delas. Passemos ao caso mais simples, ao qual denomino de “Hard Coded” , esta é a forma mais utilizada por quem começa a utilizar

Instalação do SQLPLUS da ORACLE em LINUX

Bom dia a todos Hoje vou explicar como podemos instalar o SQLPLUS da Oracle em sistemas Linux que utilizem gestão de pacotes RPM, entre eles CENTOS, FEDORA etc.. O SQLPLUS é uma excelente ferramenta de administração de SGDB da Oracle e apresenta-se sob o formato de linha de comandos o que permite aos Administradores de Base de Dados um maior poder sobre o SGDB. Antes de mais é necessário ter uma conta Oracle, esta pode ser feita atraves de um registo no site e é totalmente gratuito. Após termos conta devemos ir à secção de Download -> Databases -> Oracle Instant Client URL:   http://www.oracle.com/technetwork/indexes/downloads/index.html É apresentada uma lista sistemas operativos suportados e no nosso caso vamos escolher    Instant Client for Linux x86-64   para versões 64 Bits Ao escolhermos o Sistema Operativo a Oracle mostra-nos todas aplicações de Cliente para as diversas versões de Base de dados. A ultima versão é a 12 no entanto devemos fazer o downl

Mosquitto MQTT - Como Apagar todas as Mensagem Retain

Olá malta, hoje venho partilhar convosco algo que pode dar muito jeito quando andamos a testar cenários em que temos mensagens MQTT Retained . Um mensagem com a Flag Retain fica guardada no Broker MQTT até que seja subscrita por outra . Uma solução rápida para eliminar a mensagem Retain será publicar no mesmo tópico uma mensagem vazia , no entanto se tivermos muitos tópicos com mensagens Retain pode dar muito trabalho por isso uma forma simples será eliminar a base de dados do Mosquitto e todas as mensagem Retain são perdidas. Este cenário pode parecer uma pouco Brute Force mas se pensar-mos bem, assim que os nossos sensores/atuadores se ligarem novamente ao Broker MQTT vão publicar novamente a mensagem Retain que realmente interessa :) Procedimento sudo service mosquitto stop sudo rm /var/lib/mosquitto/ mosquitto.db sudo service mosquitto start DONE.... Espero ter ajudado :) Grande Abraço