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
# cd /var/db
Mover o directório mysql
# mv mysql /usr/local/
# mv mysql /usr/local/
Criar um link simbólico
# ln -s /usr/local/mysql mysql
# 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
# 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
# mysql -u root -p
Colocar a password.
Usar a base de dados com o nome mysql
> use mysql;
> use mysql;
Seleccionar a tabela user
> select host, user from 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’;
> update user set host=’%’ where user=’root’ and host=’127.0.0.1’;
Actualizar privilégios
>f lush privileges;
>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/
#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
#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
#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/
#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
#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
Enviar um comentário