Imos aprender a instalar e configurar Mariadb, un popular sistema de xestión de bases de datos de código aberto (RDBMS).
é desenvolvido pola comunidade e ten o apoio comercial opción. Preténdese que Mariadb permaneza moi compatible con MySQL, aínda que hai algunhas desviacións.
Neste artigo, cubriremos a instalación e configuración de Mariadb en Ubuntu 20.x e CentOS 7.X / 8. X e ao final revisaremos algunhas das mellores prácticas para garantir e mellorar o seu rendemento.
mariadb en Ubuntu
en Ubuntu 20.x, Mariadb está dispoñible directamente desde o seu defecto repositorios. Usaremos apt para esta tarefa.
Primeira actualización dos datos dos repositorios APT a través de:
$ sudo apt update
Unha vez que se actualicen os datos O repositorio, executado:
$ sudo apt install mariadb-server
Isto instalará Mariadb e os paquetes necesarios. Confirmar con ‘Y’ para calquera mensaxe que poida recibir durante a execución do comando anterior.
Do you want to continue? Y
mariadb en centavos 7.x
Para CentOS 7.X, a versión Mariadb dispoñible no repositorio de CentOS predeterminado é 5.X. Imos instalar a última versión dispoñible de Mariadb.
Para iso, primeiro debemos configurar un repositorio de yum adicional. Mariadb proporciona unha forma sinxela de usar mariadb_repo_setup
. Para configurar o repositorio, execute os seguintes comandos no seu sistema CENTOS 7.X:
$ sudo yum install wget$ wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup$ chmod +x mariadb_repo_setup$ sudo ./mariadb_repo_setup
Este script configurará o repositorio YUM necesario para instalar a última versión de Mariadb automaticamente. Ao momento de escribir este artigo, é 10.x.
ou no caso de que queira ir manualmente, pode configurar un repositorio manual de yum creando un novo ficheiro de repositorio como:
$ sudo vi /etc/yum.repos.d/MariaDB.repo
A continuación, engada os seguintes datos ao ficheiro de repositorio e gárdeo:
name = MariaDBbaseurl = http://yum.mariadb.org/10.5/centos7-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1
agora para instalar Mariadb, executa o seguinte comando:
$ sudo yum install MariaDB-server
Confirma calquera mensaxe que aparece durante a instalación introducindo ‘Y’:
Is this ok : y
Isto completa a instalación do servidor Mariadb e os paquetes dependentes.
mariadb en CentOS 8.X
para CentOS 8.X, a versión dispoñible dos defensores dos repositorios é de 10,3 ou máis recentes. Podemos instalar mariadb directamente usando o comando DNF:
Se non, para obter a última versión dispoñible, pode seguir o método manual como se indica na sección anterior a CentOS 7.X e iso debería axudar a traballar.
Comezando Mariadb
nunha máquina de Ubuntu, terá o servizo de Mariadb funcionando logo da instalación, mentres que para CentOS, temos Para activar e iniciar manualmente os servizos relevantes.
En calquera caso, tanto Ubuntu como CentOS, execute os seguintes comandos para iniciar o servizo de Mariadb, habilitalo ao iniciar e verificar:
V ID = “
da0b2″>
saída:
$ 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.$
garantindo mariadb
Como primeiro paso despois da instalación de mariadb, Debemos garantir a súa implementación fixando un contrasinal de root, desactivando o inicio de sesión da raíz remota, eliminando a base de datos de probas, así como Usuarios anónimos e finalmente recordando os privilexios.
Executar o seguinte comando Harden Mariadb:
$ sudo mysql_secure_installation
Pode seguir as indicacións predeterminadas coas accións propostas a menos que teña un requisito específico para desviar.
saída:
$ 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!$
Aquí usaremos a autenticación do sistema, polo que non temos Configurou un contrasinal de raíz separado para Mariadb, xa que xa está seguro. Se é necesario, sempre pode configurar un contrasinal de root separado.
Validación da configuración
Para verificar a configuración de Mariadb, executar (especifique o contrasinal que configure mentres mysql_secure_installation
ou, se omite Naquela época, use as credenciais da raíz 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$
Pode configurar unha nova conta de administrador en vez da raíz como se mostra a continuación (cambiar o valor de password
co que pretende configurar admin
):
$ 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$
Comprobar acceso con novo admin
como (introduza o password
como se establece no paso 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$
optimización do sistema operativo
Despois de instalar e garantir a configuración do seu mariadb, debe tomar medidas para axustar o seu sistema operativo e a súa base de datos para un rendemento óptimo. Esta configuración variará dependendo da configuración do seu sistema, o tipo de uso, o número de usuarios e outros factores.
Desde a perspectiva do sistema operativo, algúns parámetros do sistema pódense configurar para que o mariadb discutirá agora.
Configuración do kernel Linux – Programador de I / O
Os programadores de I / O / O recomendados para mariadb son noop
e deadline
. Para comprobar o uso
$ sudo cat /sys/block/sda/queue/scheduler kyber bfq none$
pódese facer un cambio temporal emitindo o seguinte comando e o seu efecto, Se hai, será inmediata sobre o desempeño do sistema:
$ sudo echo noop > /sys/block/sda/queue/scheduler
para que sexa persistente, debes configuralo no ficheiro de configuración de grub como se mostra a continuación en /etc/default/grub
, reconstruír grub e reiniciar o sistema.
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"
Límites de recurso: límite de ficheiros abertos
Linux xeralmente limita a cantidade de descritores de ficheiro que cada proceso pode abrir. Para un sistema de base de datos activo, este límite pode superar ou afectar facilmente o rendemento. En moitos sistemas Linux, este límite por defecto é 1024. Ademais, hai opcións suaves e estritas.
Para aumentar o límite, pode engadir as seguintes liñas no seu /etc/security/limits.conf
:
mysql soft nofile 65535mysql hard nofile 65535
Será necesario reiniciar o sistema despois do cal mysql
pode ver o usuario e use os novos límites. Isto pódese verificar como:
$ ulimit -Sn65535$ ulimit -Hn65535
Límites de recurso: o tamaño do ficheiro principal
Linux limita o tamaño dos ficheiros centrais como SE Viu no caso anterior. Unha vez máis, isto ten un límite suave e ríxido, por defecto, o límite suave está definido como 0, que efectivamente desactiva a xeración de ficheiros centrais. Para permitir a xeración de ficheiros centrais (outras configuracións necesarias para xerar reforzas de memoria), podemos aumentar este valor en /etc/security/limits.conf como:
Despois de reiniciar o sistema, mysql
o usuario podería ver os novos valores usando como:
$ ulimit -Scunlimited$ ulimit -Hcunlimited
Stock Swappiesess
O valor de cambio en Linux determina a probabilidade de que o sistema cambie unha páxina de memoria ao espazo de intercambio configurado no sistema. Normalmente, o valor predeterminado está configurado a 60, que se pode verificar a partir de:
sysctl vm.swappiness
O seu valor pode oscilar entre 0 e 100, onde un valor máis baixo significa medio unha menor probabilidade de cambio. Nun servidor de base de datos que só executa Mariadb, queremos reducir este valor a 0 para evitar o uso do intercambio o máximo posible. Nótese aquí que a configuración do valor de cambio de 0 debería facerse con precaución Considerando outros factores de deseño do sistema, xa que no caso de uso elevado de memoria ou carga de I / S, existe a posibilidade de que o kernel elimine o proceso de memoria insuficiente ( Oom).
Dado que se recomenda unha configuración de baixa intercambio para as cargas de traballo da base de datos e, como tales, para as bases de datos de Mariadb, recoméndase establecer o intercambio a un valor de 1. Pode engadir a seguinte liña /etc/sysctl.conf
para que este cambio sexa persistente:
vm.swappiness = 1
entrarán en vigor despois de reiniciar o sistema, aínda que ti sempre pode facelo con antelación usando sysctl
:
sysctl -w vm.swappiness=1
optimizacións do sistema de ficheiros
Para Mariadb, os mellores sistemas de ficheiros de Linux son xeralmente considerados ext4
,
eBtrfs
que están incluídos no kernel principal de Linux e son amplamente compatibles.Estes sistemas de ficheiros están dispoñibles na maioría das distribucións de Linux. Cada sistema de ficheiros ten as súas propiedades e características únicas e pode ser escollido de acordo cos requisitos despois dunha revisión adecuada.
Ademais, é improbable que necesite rexistrar o tempo de acceso ao ficheiro nun servidor base para Datos. Podemos desactivar isto para mellorar o rendemento. Pode montar o sistema de ficheiros relevante con noatime
ou engadilo nas opcións de montaxe en /etc/fstab
para que sexa persistente.
Optimización de base de datos
Hai varios parámetros optimizables internos para a operación de Mariadb que se poden personalizar en función dos requisitos e necesidades de cada un.
Discutiremos algúns deles aquí .
mariadb está configurado principalmente por my.cnf
.
en Ubuntu, pode atopar my.cnf
at:
/etc/mysql/my.cnf
Mentres tanto, CentOS está situado en:
/etc/my.cnf
Se ti pode consultar a documentación detallada sobre as variables dispoñibles para axustarse ao ficheiro de configuración desde aquí.
Moi tamén depende do tipo de motor usado por Mariadb, é dicir, MyISAM
e InnoDB or XtraDB
. Ambos teñen os seus propios pros e contras e elixir un depende dos requisitos da base de datos e aplicación.
Debemos configurar innodb_buffer_pool_size
aproximadamente o 80% da súa memoria. Isto asegura que o 80% do seu conxunto de traballo estea na memoria.
Algúns dos outros parámetros axustables importantes son:
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
Máis detalles Sobre o axuste de innodb ou variables xtradb pódese atopar aquí. Vexa isto para todas as opcións de axuste dispoñibles para mariadb.
Se che interesa, comproba estes recursos para aprender SQL e NOSQL
IV id = “
Conclusión
Mariadb é unha das opcións populares cando se trata de DBMS de relación. Ser fonte aberta cunha comunidade diversa engádelle máis.
Para obter máis información, consulte a súa documentación que inclúe temas como SQL básico, migración, administración de mariadb, alta dispoñibilidade, axuste de rendemento, almacenamento de motores, programación e Personalización. Tamén pode querer desactivar o rexistro binario se non usa un clúster.