Deixe-nos aprender a instalar e configurar o MariaDB, um popular sistema de gerenciamento de banco de dados relacional de código aberto (rdbms).
é desenvolvido pela comunidade e tem o suporte comercial opção. Pretende-se que a Mariadb permaneça altamente compatível com o MySQL, embora existam alguns desvios.
Neste artigo, vamos cobrir a instalação e configuração da MariaDB no Ubuntu 20.x e Cento 7.x / 8. X e no final iremos rever algumas das melhores práticas para garantir e melhorar seu desempenho.
mariadb no ubuntu
no ubuntu 20.x, a MariaDb está disponível diretamente de seu padrão repositórios. Vamos usar apt para esta tarefa.
primeiro atualizar os dados dos repositórios aptos via:
$ sudo apt update
Uma vez que os dados sejam atualizados de O repositório, executar:
$ sudo apt install mariadb-server
Isso instalará o MariaDB e os pacotes necessários. Confirme com ‘Y’ para qualquer mensagem que você possa receber durante a execução do comando anterior.
Do you want to continue? Y
mariadb em centavos 7.x
Para CENTOS 7.X, a versão MariaDB disponível no repositório de Centos padrão é 5.x. Vamos instalar a versão mais recente disponível do Mariadb.
Para isso, primeiro precisamos configurar um repositório yum adicional. O MariaDB fornece uma maneira simples de usar o script mariadb_repo_setup
. Para configurar o repositório, execute os seguintes comandos em seu sistema 7.x:
$ sudo yum install wget$ wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup$ chmod +x mariadb_repo_setup$ sudo ./mariadb_repo_setup
Esse script configurará o repositório YUM necessário para instalar a versão mais recente do Mariadb automaticamente. No momento de escrever este artigo, é 10.x.
ou caso você queira ir manualmente, você pode configurar um repositório manual YUM criando um novo arquivo de repositório, como:
$ sudo vi /etc/yum.repos.d/MariaDB.repo
Adicione os seguintes detalhes ao arquivo de repositório e salve-o:
name = MariaDBbaseurl = http://yum.mariadb.org/10.5/centos7-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1
agora para instalar MariaDB, execute o seguinte comando:
$ sudo yum install MariaDB-server
Confirme qualquer mensagem que apareça durante a instalação digitando ‘Y’:
Is this ok : y
Isso conclui a instalação do servidor Mariadb e os pacotes dependentes.
MariaDB no CENTOS 8.X
para 8.x Cento, a versão disponível dos padrões de repositórios é 10.3 ou mais recentes. Podemos instalar o MariaDB usando diretamente o comando dnf:
Caso contrário, para obter a versão mais recente disponível, você pode seguir o método manual conforme indicado na seção anterior para centros 7.x e isso deve ajudá-lo a trabalhar.
Iniciando MariaDB
em uma máquina Ubuntu, você terá o serviço MariaDB em execução logo após a instalação, enquanto para CENTOS, nós temos Para ativar e iniciar manualmente os serviços relevantes.
Em qualquer caso, tanto o Ubuntu quanto os CENTOS, execute os seguintes comandos para iniciar o serviço MariaDB, ativá-lo na inicialização e verificá-lo:
$ sudo systemctl start mariadb.service$ sudo systemctl enable mariadb.serviceCreated symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.$ sudo systemctl status mariadb.service● mariadb.service - MariaDB 10.5.8 database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/mariadb.service.d └─migrated-from-my.cnf-settings.conf Active: active (running) since Thu 2020-12-31 13:20:04 IST; 13s ago Docs: man:mariadbd(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 13521 (mariadbd) Status: "Taking your SQL requests now..." CGroup: /system.slice/mariadb.service └─13521 /usr/sbin/mariadbdDec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 InnoDB: 10.5.8 started; log sequence number 45118; transaction id 20Dec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 Plugin 'FEEDBACK' is disabled.Dec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_poolDec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 InnoDB: Buffer pool(s) load completed at 201231 13:20:04Dec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 Server socket created on IP: '::'.Dec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 Reading of all Master_info entries succeededDec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 Added new Master_info '' to hash tableDec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 /usr/sbin/mariadbd: ready for connections.Dec 31 13:20:04 centos7vm mariadbd: Version: '10.5.8-MariaDB' socket: '/var/lib/mysql/mysql.sock' port: 3306 MariaDB ServerDec 31 13:20:04 centos7vm systemd: Started MariaDB 10.5.8 database server.$
Garantir o mariadb
como primeiro passo após a instalação do MariaDb, Devemos assegurar sua implementação definindo uma senha de root, desativando o login da raiz remota, eliminando o banco de dados de teste, bem como Usuários anônimos e, finalmente, recordando os privilégios.
Execute o seguinte comando MariaDB Harden:
Você pode seguir as indicações padrão com as ações sugeridas A menos que você tenha um requisito específico para desviar.
$ sudo mysql_secure_installationNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!In order to log into MariaDB to secure it, we'll need the currentpassword for the root user. If you've just installed MariaDB, andhaven't set the root password yet, you should just press enter here.Enter current password for root (enter for none):OK, successfully used password, moving on...Setting the root password or using the unix_socket ensures that nobodycan log into the MariaDB root user without the proper authorisation.You already have your root account protected, so you can safely answer 'n'.Switch to unix_socket authentication n ... skipping.You already have your root account protected, so you can safely answer 'n'.Change the root password? n ... skipping.By default, a MariaDB installation has an anonymous user, allowing anyoneto log into MariaDB without having to have a user account created forthem. This is intended only for testing, and to make the installationgo a bit smoother. You should remove them before moving into aproduction environment.Remove anonymous users? Y ... Success!Normally, root should only be allowed to connect from 'localhost'. Thisensures that someone cannot guess at the root password from the network.Disallow root login remotely? Y ... Success!By default, MariaDB comes with a database named 'test' that anyone canaccess. This is also intended only for testing, and should be removedbefore moving into a production environment.Remove test database and access to it? Y - Dropping test database... ... Success! - Removing privileges on test database... ... Success!Reloading the privilege tables will ensure that all changes made so farwill take effect immediately.Reload privilege tables now? Y ... Success!Cleaning up...All done! If you've completed all of the above steps, your MariaDBinstallation should now be secure.Thanks for using MariaDB!$
Aqui vamos usar a autenticação do sistema, por isso não temos Configurou uma senha root separada para MariaDB, como já é seguro. Se necessário, você sempre pode configurar uma senha root separada.
Validação da configuração
para verificar a configuração da MariaDb, executar (especifique a senha que você configurou enquanto mysql_secure_installation
ou, se omit Naquela época, use as credenciais raiz do seu sistema):
$ sudo mysqladmin -u root -p versionEnter password:mysqladmin Ver 9.1 Distrib 10.5.8-MariaDB, for Linux on x86_64Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Server version 10.5.8-MariaDBProtocol version 10Connection Localhost via UNIX socketUNIX socket /var/lib/mysql/mysql.sockUptime: 53 min 17 secThreads: 2 Questions: 77 Slow queries: 0 Opens: 20 Open tables: 14 Queries per second avg: 0.024$
Você pode configurar uma nova conta de administrador em vez da raiz, conforme mostrado abaixo (altere o valor de com o qual você pretende definir admin
conta):
$ sudo mariadbWelcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 44Server version: 10.5.8-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB > GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;Query OK, 0 rows affected (0.003 sec)MariaDB > FLUSH PRIVILEGES;Query OK, 0 rows affected (0.000 sec)MariaDB > exitBye$
Verifique o acesso com o novo admin
User como (Digite o password
como definido na etapa anterior):
$ mysqladmin -u admin -p versionEnter password:mysqladmin Ver 9.1 Distrib 10.5.8-MariaDB, for Linux on x86_64Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Server version 10.5.8-MariaDBProtocol version 10Connection Localhost via UNIX socketUNIX socket /var/lib/mysql/mysql.sockUptime: 56 min 59 secThreads: 2 Questions: 83 Slow queries: 0 Opens: 20 Open tables: 14 Queries per second avg: 0.024$
Otimização do sistema operacional
Após instalar e proteger suas configurações da MariaDb, você deve tomar medidas para ajustar seu sistema operacional e seu banco de dados para o desempenho ideal. Essa configuração irá variar dependendo da configuração do sistema, o tipo de uso, o número de usuários e outros fatores.
Na perspectiva do sistema operacional, alguns parâmetros do sistema podem ser configurados para a MariaDB que nós vai discutir agora.
Linux Kernel Configuração – Programador de E / S
Os programadores de E / S recomendados para MariaDB são noop
e deadline
. Para verificar o uso
$ sudo cat /sys/block/sda/queue/scheduler kyber bfq none$
pode ser feito uma alteração temporária emitindo o seguinte comando e seu efeito, Se houver, será imediato no desempenho do sistema:
$ sudo echo noop > /sys/block/sda/queue/scheduler
para torná-lo persistente, você deve configurá-lo no arquivo de configuração do Grub como mostrado abaixo no /etc/default/grub
, reconstruir grub e reinicie o sistema.
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"
Limites de recursos: limite de arquivos abertos
Linux geralmente limita o número de descritores de arquivos que cada processo pode abrir. Para um sistema de banco de dados ativo, esse limite pode facilmente exceder ou afetar o desempenho. Em muitos sistemas Linux, este limite padrão é 1024. Além disso, há opções suaves e rigorosas.
Para aumentar o limite, você pode adicionar as seguintes linhas em seu /etc/security/limits.conf
mysql soft nofile 65535mysql hard nofile 65535
será necessário reiniciar o sistema após o qual mysql
O usuário pode ver e use os novos limites. Isso pode ser verificado como:
$ ulimit -Sn65535$ ulimit -Hn65535
Tamanho do arquivo principal
linux limita o tamanho dos arquivos centrais como SE Ele viu no caso anterior. Novamente, isso tem um limite suave e rígido, por padrão, o limite suave é definido como 0, que efetivamente desativa a geração de arquivos centrais. Para permitir a geração de arquivos centrais (outras configurações necessárias para gerar derrubamentos de memória), podemos aumentar este valor em /etc/security/limits.conf como:
mysql soft core unlimitedmysql hard core unlimited
Depois de reiniciar o sistema, mysql
O usuário pode ver os novos valores usando o comando ulimit
$ ulimit -Scunlimited$ ulimit -Hcunlimited
estoque Swappiess
O valor do Exchange no Linux determina a probabilidade de que o sistema altere uma página de memória para o espaço do Exchange configurado no sistema. Normalmente, o valor padrão é definido como 60, que pode ser verificado de:
sysctl vm.swappiness
Seu valor pode oscilar entre 0 e 100, onde um valor mais baixo significa uma menor probabilidade de troca. Em um servidor de banco de dados que executa apenas MariaDb, gostaríamos de reduzir esse valor para 0 para evitar o uso tanto quanto possível. Observe que a configuração do valor de troca de 0 deve ser feita com cautela Considerando outros fatores de design do sistema, já que no caso de alto uso de memória ou carga de E / S, existe a possibilidade de que o kernel remova o processo de memória insuficiente ( Oom).
Como uma configuração de troca baixa é recomendada para as cargas de trabalho do banco de dados e, como tal, para bancos de dados MariaDb, é recomendável estabelecer a troca a um valor de 1. Você pode adicionar a seguinte linha /etc/sysctl.conf
para que esta alteração seja persistente:
vm.swappiness = 1
As alterações entrarão em vigor após a reiniciar o sistema, embora você pode sempre fazer isso com antecedência usando sysctl
sysctl -w vm.swappiness=1
otimizações do sistema de arquivos
Para MariaDB, os melhores sistemas de arquivos do Linux são geralmente considerados ext4
XFS
e Btrfs
Todos estão incluídos no kernel principal do Linux e são amplamente compatíveis.Esses sistemas de arquivos estão disponíveis na maioria das distribuições do Linux. Cada sistema de arquivos tem suas propriedades e recursos exclusivos e pode ser escolhido de acordo com os requisitos após uma revisão apropriada.
Além disso, é improvável que precise registrar o tempo de acesso ao arquivo em um servidor base para dados. Podemos desativar isso para melhorar o desempenho. Você pode montar o sistema de arquivos relevante com opção noatime
ou adicioná-lo nas opções de montagem em /etc/fstab
arquivo para torná-lo persistente.
otimização de banco de dados
Existem vários parâmetros internos otimizáveis para a operação da MariaDB que podem ser personalizados com base nos requisitos e nas necessidades de cada um.
Nós discutiremos alguns deles aqui .
MariaDB é definido principalmente por my.cnf
no Ubuntu, você pode encontrar my.cnf
em:
/etc/mysql/my.cnf
Enquanto isso, os CENTOS estão localizados em:
/etc/my.cnf
se você pode consultar a documentação detalhada sobre quais variáveis estão disponíveis para ajustar para o arquivo de configuração daqui.
Muito também depende do tipo de motor usado pela MariaDB, nomeadamente, MyISAM
e InnoDB or XtraDB
. Ambos têm seus próprios prós e contras e escolhem que se depende dos requisitos do banco de dados e do aplicativo.
Devemos definir aproximadamente 80% de sua memória. Isso garante que 80% do seu conjunto de trabalho esteja na memória.
Alguns dos outros parâmetros ajustáveis importantes são:
innodb_log_file_sizeinnodb_flush_methodinnodb_thread_sleep_delayinnodb_adaptive_max_sleep_delayinnodb_buffer_pool_instancesinnodb_buffer_pool_sizeinnodb_max_dirty_pages_pct_lwminnodb_read_ahead_thresholdinnodb_thread_concurrency
Mais detalhes Sobre o ajuste das variáveis InnoDB ou XTRADB pode ser encontrada aqui. Veja isto para todas as opções de ajuste disponíveis para MariaDB.
Se você estiver interessado, verifique esses recursos para aprender SQL e NOSQL.
Conclusão
mariadb é uma das opções populares quando se trata de DBMS de relacionamento. Ser open source com uma comunidade diversificada adiciona mais a ele.
Para obter mais informações, consulte sua documentação que inclua tópicos como SQL Basic, Migração, Administração da MariaDb, alta disponibilidade, ajuste de desempenho, armazenamento de motores, programação e costumização. Você também pode querer desativar o registro binário se não usar um cluster.