Como instalar, ajuste seguro e de desempenho do servidor de banco de dados Mariadb

Como instalar, ajuste seguro e de desempenho do servidor de banco de dados Mariadb

Um servidor de banco de dados é um componente crítico da infraestrutura de rede necessária para os aplicativos de hoje. Sem a capacidade de armazenar, recuperar, atualizar e excluir dados (quando necessário), a utilidade e o escopo dos aplicativos da Web e da área de trabalho se tornam muito limitados.

Instale, segura e ajuste de desempenho do servidor mariadb

Além disso, saber como instalar, gerenciar e configurar um servidor de banco de dados (para que ele opere conforme o esperado) é uma habilidade essencial que todo administrador do sistema deve ter.

Neste artigo, revisaremos brevemente como instalar e proteger um servidor de banco de dados MariaDB e depois explicaremos como configurá -lo.

Instalando e protegendo um servidor mariadb

Em CENTOS 7.x, Mariadb substituiu o mysql, que ainda pode ser encontrado no Ubuntu (junto com o mariadb). O mesmo é verdadeiro para OpenSuse.

Para a brevidade, só usaremos Mariadb Neste tutorial, mas observe que, além de ter nomes diferentes e filosofias de desenvolvimento, ambos Sistemas de gerenciamento de banco de dados relacionais (RDBMSS para abreviar) são quase idênticos.

Isso significa que os comandos do lado do cliente são os mesmos em ambos Mysql e Mariadb, e os arquivos de configuração são nomeados e localizados nos mesmos lugares.

Para instalar o mariadb, faça:

--------------- No CentOS/Rhel 7 e Fedora 23 --------------- # yum update && yum instalar mariadb mariadb-server # centos --------------- Em Debian e Ubuntu --------------- $ sudo aptitude update && sudo aptitude install mariadb-client mariadb-server --------------- No OpenSuse --------------- # zypper update && zypper install mariadb mariadb-tools # OpenSuse 

Observe que, em Ubuntu, Você será solicitado a inserir uma senha para o usuário root rdbms.

Depois que os pacotes acima forem instalados, verifique se o serviço de banco de dados está em execução e foi ativado para começar na inicialização (em CENTOS e OpenSuse Você precisará executar esta operação manualmente, enquanto em Ubuntu O processo de instalação já terá cuidado dele para você):

--------------- No CentOS/Rhel 7 e Fedora 23 --------------- # SystemCtl Iniciar MariaDB && SystemCtl Ativar Mariadb --------------- No OpenSuse --------------- # SystemCtl Iniciar MySQL && SystemCtl Ativar MySQL 

Em seguida, execute o mysql_secure_installation roteiro. Este processo permitirá:

  1. Defina / redefinir a senha para o usuário RDBMS Root
  2. Remova os logins anônimos (permitindo assim apenas os usuários com uma conta válida para fazer login no RDBMS)
  3. Desative o acesso de raiz para outras máquinas que não o host local
  4. Remova o banco de dados de teste (que qualquer pessoa pode acessar)
  5. Ative as mudanças associadas a 1 a 4.

Para uma descrição mais detalhada desse processo, você pode consultar a seção Post Instalação no banco de dados MariaDB Install em Rhel/Centos/Fedora e Debian/Ubuntu.

Configurando o servidor mariadb

As opções de configuração padrão são lidas dos seguintes arquivos na ordem especificada: /etc/mysql/meu.CNF, /etc/meu.CNF, e ~/.meu.CNF.

Na maioria das vezes, apenas /etc/meu.CNF existe. É neste arquivo que definiremos as configurações em todo o servidor (que podem ser substituídas nas mesmas configurações em ~/.meu.CNF para cada usuário).

A primeira coisa que precisamos notar sobre meu.CNF é que as configurações são organizadas em categorias (ou grupos) em que cada nome de categoria é incluído com colchetes quadrados.

As configurações do sistema de servidor são fornecidas no [MySqld] Seção, onde normalmente você encontrará apenas as duas primeiras configurações da tabela abaixo. O resto são outras opções usadas com frequência (onde indicado, alteraremos o valor padrão com um personalizado de nossa escolha):

Configuração e descrição Valor padrão
Datadir é o diretório onde os arquivos de dados são armazenados. datadir =/var/lib/mysql
O soquete indica o nome e a localização do arquivo de soquete usado para conexões locais do cliente. Lembre -se de que um arquivo de soquete é um recurso utilizado para passar informações entre os aplicativos. soquete =/var/lib/mysql/mysql.meia
bind_address é o endereço em que o servidor de banco de dados ouvirá as conexões TCP/IP. Se você precisar do seu servidor para ouvir em mais de um endereço IP, deixe de fora esta configuração (0.0.0.0 o que significa que ele ouvirá em todos os endereços IP atribuídos a este host específico).

Vamos mudar isso para instruir o serviço a ouvir apenas em seu endereço principal (192.168.0.13):

bind_address = 192.168.0.13

bind_address = 0.0.0.0
Porta representa a porta onde o servidor de banco de dados estará ouvindo.

Substituiremos o valor padrão (3306) por 20500 (mas precisamos garantir que nada mais esteja usando essa porta):
porta = 20500

Enquanto algumas pessoas argumentam que a segurança através da obscuridade não é uma boa prática, alterar as portas de aplicativos padrão para as mais altas é um método rudimentar - sim eficaz para desencorajar as varreduras da porta.

porta = 3306
innodb_buffer_pool_size é o pool de buffer (em bytes) de memória que é alocada para dados e índices que são acessados ​​com frequência ao usar o Innodb (que é o padrão em mariadb) ou xtradb como mecanismo de armazenamento.

Substituiremos o valor padrão por 256 MB:

innodb_buffer_pool_size = 256m

innodb_buffer_pool_size = 134217728
SKIP_NAME_RESOLVE indica se os nomes de host serão resolvidos ou não nas conexões recebidas. Se definido como 1, como faremos neste guia, apenas endereços IP.

A menos que você precise de nomes de host para determinar as permissões, é aconselhável desativar essa variável (para acelerar conexões e consultas) definindo seu valor como 1:

skip_name_resolve = 1

skip_name_resolve = 0
Query_cache_size representa o tamanho (em bytes) disponível para o cache de consulta no disco, onde os resultados de consultas selecionadas são armazenadas para uso futuro quando uma consulta idêntica (para o mesmo banco de dados e usando o mesmo protocolo e o mesmo conjunto de caracteres) é executado.

Você deve escolher um tamanho de cache de consulta que atenda às suas necessidades com base em 1) o número de consultas repetitivas e 2) o número aproximado de registros que essas consultas repetitivas devem retornar. Definiremos esse valor para 100 MB por enquanto:

query_cache_size = 100m

query_cache_size = 0 (o que significa que está desativado por padrão)
Max_Connections é o número máximo de conexões simultâneas do cliente com o servidor. Definiremos esse valor para 30:
max_connections = 30Each conexão usará um thread e, portanto, consumirá memória. Leve esse fato em consideração ao definir max_connections.
max_connections = 151
Thread_cache_size indica o número de threads que o servidor aloca para reutilização depois que um cliente desconecta e libera threads anteriormente em uso. Nesta situação, é mais barato (em termos de desempenho) reutilizar um fio do que instanciar um novo.

Novamente, isso depende do número de conexões que você está esperando. Podemos definir com segurança esse valor como metade do número de max_connections:

Thread_cache_size = 15

Thread_cache_size = 0 (desativado por padrão)

Em CENTOS, Precisamos contar Selinux permitir Mariadb Para ouvir em uma porta fora do padrão (20500) antes de reiniciar o serviço:

# yum install policycoreutils -python # semanage porta -a -t mysqld_port_t -p tcp 20500 

Em seguida, reinicie o serviço Mariadb.

Ajustando o desempenho do mariadb

Para nos ajudar a verificar e ajustar a configuração de acordo com nossas necessidades específicas, podemos instalar mysqltuner (Um script que fornecerá sugestões para melhorar o desempenho do nosso servidor de banco de dados e aumentar sua estabilidade):

# wget https: // github.com/major/mysqltuner-perl/tarball/mestre # tar xzf mestre 

Em seguida, altere o diretório para a pasta extraída do tarball (a versão exata pode diferir no seu caso):

# CD major-mysqltuner-perl-7Dabf27 

e executá -lo (você será solicitado a inserir as credenciais da sua conta MariaDB administrativa)

# ./mysqltuner.pl 

A saída do script é por si só muito interessante, mas vamos pular para o fundo, onde as variáveis ​​a serem ajustadas estão listadas com o valor recomendado:

Tunning de desempenho de mariadb

O Query_cache_type A configuração indica se o cache de consulta está desativado (0) ou ativado (1). Nesse caso, mysqltuner está nos aconselhando a desativá -lo.

Então, por que somos aconselhados a desativá -lo agora? O motivo é que o cache de consulta é útil principalmente em cenários de alta leitura / baixa gravação (que não é o nosso caso, já que acabamos de instalar o servidor de banco de dados).

AVISO: Antes de fazer alterações na configuração de um servidor de produção, você é altamente incentivado a consultar um administrador de banco de dados de especialistas para garantir que uma recomendação dada por MySqltuner não afetará negativamente em uma configuração existente.

Resumo

Neste artigo, explicamos como configurar um servidor de banco de dados Mariadb depois de instalar e garantir. As variáveis ​​de configuração listadas na tabela acima são apenas algumas configurações que você pode considerar ao preparar o servidor para uso ou ao ajustá -lo posteriormente. Sempre consulte a documentação oficial do MariaDB antes de fazer alterações ou consulte nossas dicas de ajuste de desempenho do mariadb:

Não perca: 15 dicas úteis de ajuste e otimização de desempenho de mariadb

Como sempre, não hesite em nos informar se você tiver alguma dúvida ou comentário sobre este artigo. Existem outras configurações de servidor que você gosta de usar? Sinta -se à vontade para compartilhar com o resto da comunidade usando o formulário de comentário abaixo.

Torne -se um administrador de sistema certificado Linux