Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Servidor MySQL autônomo


Em alguns tipos de implementações, particularmente onde aplicativos dinâmicos avançados dependem de um grande banco de dados, separar o servidor de banco de dados do servidor de aplicativos pode permitir que seu aplicativo escale e acomode uma base de usuários muito maior. A designação de um servidor separado para ser usado exclusivamente pelo MySQL permitirá que o servidor web do aplicativo forneça conteúdo com mais eficiência, enquanto o servidor de banco de dados poderá responder mais rapidamente.

Como resultado, esses servidores de banco de dados podem oferecer suporte mais eficaz a implantações com cargas de alto tráfego. Isso pode ajudá-lo a obter maior desempenho para uma variedade de aplicativos, desde pacotes populares como WordPress e Drupal até aplicativos personalizados escritos em Ruby on Rails e Django.

Pré-requisitos


Neste guia, usaremos dois Linodes. Observe que isso é diferente de simplesmente implantar um segundo perfil de configuração em sua conta Linode existente, pois ambos os servidores precisarão estar funcionando ao mesmo tempo. Estamos assumindo que você seguiu o guia Configurando e Protegendo uma Instância de Computação para ambos os Linodes.
  • Para o Linode rodando o servidor web, doravante o servidor de aplicação, você já deve ter o Apache (ou seu servidor web preferido) instalado. Para uma nova instalação, siga o guia LAMP para sua distribuição. O guia LAMP inclui MySQL, que você não precisa instalar.
  • O MySQL Linode dedicado deve ter o MySQL instalado. Siga o guia de instalação do servidor de banco de dados MySQL para sua distribuição. Lembre-se de que você não precisa instalar o Apache no servidor MySQL dedicado.

Além disso, você desejará configurar aliases para o endereço IP privado de cada Linode. Você pode seguir o guia de configuração de IP estático do Linux para obter ajuda com isso. É importante observar que ambos os Linodes devem estar no mesmo data center para que a rede privada funcione. Isso permite que os servidores se comuniquem sem a contagem de tráfego em relação à sua cota mensal de largura de banda. É necessário reiniciar ambos os Linodes após configurar os endereços IP privados.

Editar /etc/hosts


Você desejará criar nomes de host para cada máquina para poder acompanhá-los mais tarde. Isso também economiza trabalho, caso você se encontre em uma situação em que precise alterar o endereço IP do servidor. Edite o /etc/hosts arquivo para incluir o arquivo privado Endereços IP de cada Linode. Use o seguinte trecho de um exemplo /etc/hosts arquivo como exemplo:
Arquivo:/ etc/hosts
1
> 127.0.0.1 localhost 192.168.192.168 mysql.example.com mysql 192.168.192.169 app.example.com app

Lembre-se de substituir 192.168.192.168 e 192.168.192.169 com os endereços IP privados reais.

Embora esta etapa seja opcional, configurar hosts entradas permitirão que você evite configurações de aplicativos de codificação rígida para endereços IP específicos. Você poderá migrar rapidamente seus servidores de aplicativos e banco de dados para servidores alternativos se precisar alterar seus endereços IP.

Configurando o servidor MySQL


O próximo passo é modificar o arquivo /etc/mysql/my.cnf arquivo em seu servidor MySQL para ouvir em seu endereço IP privado. Usando seu editor favorito, abra o /etc/mysql/my.cnf arquivo e insira o nome do host do banco de dados MySQL. Para este exemplo, o nome do host do banco de dados MySQL é mysql . Localize o bind-address linha:
Arquivo:/ etc/mysql/my.cnf
1
bind-address = mysql

Você também pode usar o endereço IP privado. Salve o arquivo e execute o seguinte comando para reiniciar o daemon MySQL:
/etc/init.d/mysql restart

Conceder acesso ao banco de dados


No servidor de banco de dados dedicado, você precisará criar um nome de usuário e uma senha do banco de dados com direitos de acesso. Isso é possível através do prompt do MySQL. Emita o seguinte comando:
mysql -u root -p

Isso fornecerá uma linha de comando do MySQL. Emita os seguintes comandos, substituindo app com o hostname do Linode rodando o servidor de aplicação e uma senha forte no lugar de “PASSWORD”:
CREATE DATABASE webapplications;

GRANT ALL ON webapplications.* TO [email protected]'app' IDENTIFIED BY 'PASSWORD';

Neste estágio, seu aplicativo pode acessar com sucesso o banco de dados remoto e você está pronto para começar a usar o servidor de banco de dados.

Usando o servidor de banco de dados


A partir deste ponto, tudo está configurado e seu servidor de banco de dados está pronto para aceitar uma conexão do seu servidor web. Agora você deve poder apontar seu aplicativo para o servidor MySQL sem incidentes. É importante lembrar que ao configurar aplicações web para trabalhar com um servidor MySQL remoto você deve criar um usuário com direitos ao sistema remoto (como mostrado acima).

Usar o MySQL em um servidor de banco de dados separado é muito semelhante a executar um servidor de banco de dados local. Normalmente, os aplicativos exigem que você especifique "nome do host do banco de dados" e, convencionalmente, os servidores de banco de dados executados na máquina local têm um nome de host localhost . Ao separar os servidores de banco de dados e de aplicativos, você precisará especificar o nome do host, conforme definido acima, no aplicativo.

Por exemplo, as configurações do banco de dados inWordPress estão contidas no arquivo wp-config.php arquivo e o nome do host é especificado no seguinte formato:
Arquivo:wp -config.php
1
2
/** MySQL hostname */
define('DB_HOST', 'mysql');

Observe que o método para definir o nome do host varia de aplicativo para aplicativo. Além disso, você pode substituir o endereço IP específico do servidor de banco de dados, em vez de usar o nome do host conforme configurado em /etc/hosts acima de.

Considere também fazer referência ao site externalMySQL para consultas específicas do MySQL e ajuda relacionada.

Mais Informações

Você pode querer consultar os seguintes recursos para obter informações adicionais sobre este tópico. Embora estes sejam fornecidos na esperança de que sejam úteis, observe que não podemos garantir a precisão ou pontualidade dos materiais hospedados externamente.
  • Guias de aplicativos da Web
  • Estruturas de aplicativos da Web
  • Sistemas de gerenciamento de banco de dados