MariaDB-10.6.12

Introdução ao MariaDB

"MariaDB" é uma bifurcação desenvolvida pela comunidade e um substituto imediato para o sistema de gerenciamento de bases de dados relacionais "MySQL".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

[Nota]

Nota

O tamanho instalado do "MariaDB" é 658 MB, mas pode ser reduzido em cerca de 252 MB, se desejado, removendo-se o diretório "/usr/share/mysql/test" depois da instalação.

Dependências do "MariaDB"

Exigidas

CMake-3.25.2

Recomendadas

Opcionais

Boost-1.81.0, libaio-0.3.113, libxml2-2.10.3, Linux-PAM-1.5.2, MIT Kerberos V5-1.20.1, pcre2-10.42, Ruby-3.2.1, sphinx-6.1.3, unixODBC-2.3.11, Valgrind-3.20.0, Groonga, KyTea, Judy, lz4, MeCab, MessagePack, mruby, MyRocks, Snappy e ZeroMQ

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/mariadb

Instalação do MariaDB

[Atenção]

Atenção

"MariaDB" e "MySQL" não podem ser instalados no mesmo sistema sem grandes mudanças na configuração de construção de um dos dois aplicativos.

Por motivos de segurança, executar o servidor como um(a) usuário(a) e grupo sem privilégios é altamente encorajado. Emita o seguinte (como "root") para criar o(a) usuário(a) e o grupo:

groupadd -g 40 mysql &&
useradd -c "Servidor MySQL" -d /srv/mysql -g mysql -s /bin/false -u 40 mysql

Instale o "MariaDB" executando os seguintes comandos:

mkdir build &&
cd   build &&

cmake -DCMAKE_BUILD_TYPE=Release                      \
      -DCMAKE_INSTALL_PREFIX=/usr                     \
      -DGRN_LOG_PATH=/var/log/groonga.log             \
      -DINSTALL_DOCDIR=share/doc/mariadb-10.6.12       \
      -DINSTALL_DOCREADMEDIR=share/doc/mariadb-10.6.12 \
      -DINSTALL_MANDIR=share/man                      \
      -DINSTALL_MYSQLSHAREDIR=share/mysql             \
      -DINSTALL_MYSQLTESTDIR=share/mysql/test         \
      -DINSTALL_PAMDIR=lib/security                   \
      -DINSTALL_PAMDATADIR=/etc/security              \
      -DINSTALL_PLUGINDIR=lib/mysql/plugin            \
      -DINSTALL_SBINDIR=sbin                          \
      -DINSTALL_SCRIPTDIR=bin                         \
      -DINSTALL_SQLBENCHDIR=share/mysql/bench         \
      -DINSTALL_SUPPORTFILESDIR=share/mysql           \
      -DMYSQL_DATADIR=/srv/mysql                      \
      -DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock       \
      -DWITH_EXTRA_CHARSETS=complex                   \
      -DWITH_EMBEDDED_SERVER=ON                       \
      -DSKIP_TESTS=ON                                 \
      -DTOKUDB_OK=0                                   \
      .. &&
make

Para testar os resultados, emita: "make test". Um teste, "test-connect", é conhecido por falhar.

[Nota]

Nota

Um conjunto mais extenso de testes pode ser executado com o seguinte:

pushd mysql-test
./mtr --parallel <N> --mem --force
popd

Onde N é o número de testes a executar em paralelo. Mais que cinco mil e quatrocentos (5.400) testes são executados em cerca de 24 UPC com N=4. Uns poucos testes possivelmente falhem, principalmente devido a problemas no conjunto de caracteres.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

-DWITH_EMBEDDED_SERVER=ON: Essa chave habilita compilar a biblioteca incorporada do servidor necessária para determinados aplicativos, como o "Amarok".

-DWITH_EXTRA_CHARSETS=complex: Essa chave habilita suporte para os conjuntos de caracteres complexos.

-DSKIP_TESTS=ON: Essa chave desabilita testes para "Connector/C" do "MariaDB" que não são suportados sem configuração adicional.

-DWITHOUT_SERVER=ON: Use essa chave se você não quiser o servidor e gostaria de construir somente o cliente.

[Nota]

Nota

Existem numerosas opções disponíveis para o "cmake". Verifique a saída gerada do "cmake . -LH" para opções adicionais de personalização.

Configurando o MySQL

Arquivos de Configuração

/etc/mysql/my.cnf e ~/.my.cnf

Informação de Configuração

Crie o "/etc/mysql/my.cnf" básico usando o seguinte comando como o(a) usuário(a) "root":

install -v -dm 755 /etc/mysql &&
cat > /etc/mysql/my.cnf << "EOF"
# Inicia /etc/mysql/my.cnf

# As seguintes opções serão passadas para todos os clientes "MySQL"
[client]
#password       = tua_senha
port            = 3306
socket          = /run/mysqld/mysqld.sock

# O servidor "MySQL"
[mysqld]
port            = 3306
socket          = /run/mysqld/mysqld.sock
datadir         = /srv/mysql
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 16K
myisam_sort_buffer_size = 8M

# Não escute em uma porta TCP/IP.
skip-networking

# Exigido ID único entre 1 e 2^32 - 1
server-id       = 1

# Descomente o seguinte se você estiver usando tabelas "BDB"
#bdb_cache_size = 4M
#bdb_max_lock = 10000

# As tabelas "InnoDB" agora são usadas por padrão
innodb_data_home_dir = /srv/mysql
innodb_log_group_home_dir = /srv/mysql
# Todos os valores "innodb_xxx" abaixo são os [valores] padrão:
innodb_data_file_path = ibdata1:12M:autoextend
# Você consegue configurar ".._buffer_pool_size" até 50 - 80 %
# da "RAM", mas cuidado ao configurar o uso de memória muito alto
innodb_buffer_pool_size = 128M
innodb_log_file_size = 48M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remova o próximo caractere de comentário se você não estiver familiarizado(a) com "SQL"
#safe-updates

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

# Termina /etc/mysql/my.cnf
EOF

Você pode agora instalar uma base de dados e mudar a titularidade da propriedade para o(a) usuário(a) e grupo sem privilégios (realize como o(a) usuário(a) "root"):

mysql_install_db --basedir=/usr --datadir=/srv/mysql --user=mysql &&
chown -R mysql:mysql /srv/mysql

A configuração adicional exige que o servidor "MariaDB" esteja em execução. Inicie o servidor usando os seguintes comandos como o(a) usuário(a) "root":

install -v -m755 -o mysql -g mysql -d /run/mysqld &&
mysqld_safe --user=mysql 2>&1 >/dev/null &

Uma instalação padrão não configura uma senha para o(a) administrador(a), portanto, use o seguinte comando como o(a) usuário(a) "root" para configurar uma.

mysqladmin -u root password

A configuração do servidor agora está finalizada. Encerre o servidor usando o seguinte comando como o(a) usuário(a) "root":

mysqladmin -p shutdown

Unidade do systemd

Instale a unidade "mysqld.service" inclusa no pacote "" "blfs-systemd-units-20220720" como o(a) usuário(a) "root" para iniciar o servidor "MariaDB" durante a inicialização do sistema.

make install-mysqld
[Nota]

Nota

Se você já tem uma base de dados existente e essa instalação de binários foi apenas uma atualização para uma versão mais recente, [então] verifique a documentação do(a) desenvolvedor(a) para atualização. É recomendado executar:

mariadb-upgrade

Conteúdo

Aplicativos Instalados: aria_chk, aria_dump_log, aria_ftdump, aria_pack, aria_read_log, aria_s3_copy, galera_new_cluster, galera_recovery, innochecksum, mariabackup, mariadb, mariadbd, mariadb-access, mariadb-admin, mariadb-backup, mariadb-binlog, mariadb-check, mariadb-client-test, mariadb-client-test-embedded, mariadb-conv, mariadb-convert-table-format, mariadb-find-rows, mariadbd-multi, mariadbd-safe, mariadbd-safe-helper, mariadb-dump, mariadb-dumpslow, mariadb-embedded, mariadb-fix-extensions, mariadb-hotcopy, mariadb-import, mariadb-install-db, mariadb-ldb, mariadb-plugin, mariadb-secure-installation, mariadb-setpermission, mariadb-service-convert, mariadb-show, mariadb-slap, mariadb-test, mariadb-test-embedded, mariadb-tzinfo-to-sql, mariadb-upgrade, mariadb-waitpid, mariadb_config, mbstream, msql2mysql, my_print_defaults, myisamchk, myisam_ftdump, myisamlog, myisampack, mysql_config, mytop, perror, replace, resolve_stack_dump, resolveip, sst_dump, wsrep_sst_common, wsrep_sst_mariabackup, wsrep_sst_mysqldump e wsrep_sst_rsync
Bibliotecas Instaladas: libmariadbclient.a, libmariadb.so, libmariadbd.so, libmysqlclient.a, libmysqlclient_r.a (links simbólicos para libmariadbclient.a), libmysqld.{so,a}, libmysqlservices.a e várias sob /usr/lib/mysql/plugin/
Diretórios Instalados: /etc/mysql, /usr/{include,lib,share}/mysql, /usr/share/groonga{-normalizer-mysql} e /usr/share/doc/mariadb-10.6.12

Descrições Curtas

Existem vários links simbólicos de "mysql*" para as contrapartes deles do "mariadb". Eles são mantidos para compatibilidade.

Os módulos "DBI" do "Perl" precisam estar instalados para que alguns dos aplicativos de suporte do "MariaDB" funcionem corretamente.

Descrições Curtas

aria_chk

é usado para verificar, reparar, otimizar, classificar e obter informações relativas a tabelas "Aria"

aria_dump_log

é uma ferramenta para despejar o conteúdo das páginas de registro do "Aria"

aria_ftdump

exibe informações de índice de texto completo

aria_pack

é uma ferramenta para gerar tabelas "Aria" comprimidas e somente leitura

aria_read_log

exibe o conteúdo do arquivo de registro do "Aria"

aria_s3_copy

copia uma tabela "Aria" de e para "AWS S3"

galera_new_cluster

inicializa um novo agrupamento "Galera"

galera_recovery

recupera dados a partir de um agrupamento "Galera"

innochecksum

imprime somas de verificação para arquivos "InnoDB"

mariabackup

é uma ferramenta de fonte aberto de cópia de segurança para "InnoDB" e "XtraDB"

mariadb

é um "shell" simples "SQL" com recursos de edição de linha de entrada

mariadbd

é o processo de segundo plano do servidor "MySQL"

mariadb-access

verifica os privilégios de acesso para uma combinação de nome de dispositivo, nome de usuário(a) e base de dados

mariadb-admin

é um cliente para realizar operações administrativas

mariadb-binlog

lê arquivos binários de registro

mariadb-check

realiza manutenção de tabelas: verifica, repara, otimiza ou analisa tabelas

mariadb-client-test

é usado para testar aspectos da "API" do cliente "MySQL" que não podem ser testados usando o "mysqltest" e a linguagem de teste dele

mariadb-client-test-embedded

é uma ferramenta para testar a "API" do cliente para o servidor incorporado

mariadb-conv

converte conjuntos de caracteres para uso com "MariaDB"

mariadb-convert-table-format

converte as tabelas em uma base de dados para usar um mecanismo específico de armazenamento

mariadbd-multi

foi projetado para gerenciar vários processos "mysqld" que escutam conexões em diferentes arquivos de soquete "Unix" e portas "TCP"/"IP"

mariadbd-safe

é a maneira recomendada de iniciar um servidor "mysqld" em "Unix" e "NetWare"

mariadb-dump

é um aplicativo de cópia de segurança

mariadb-dumpslow

analisa arquivos de registro de consulta lenta do "MySQL" e imprime um resumo do conteúdo deles

mariadb-embedded

é um cliente "MySQL" vinculado estaticamente à "libmariadbd"

mariadb-find-rows

lê arquivos contendo instruções "SQL" e extrai instruções que correspondem a uma determinada expressão regular ou que contém instruções "USE" nome_base_dados ou "SET"

mariadb-fix-extensions

converte as extensões dos arquivos de tabela "MyISAM" (ou "ISAM") para as formas canônicas delas

mariadb-hotcopy

trava a tabela, libera a tabela e então realiza uma cópia da base de dados

mariadb-import

lê uma variedade de formatos de dados e insere os dados em uma base de dados

mariadb-install-db

inicializa o diretório de dados "MySQL" e cria as tabelas de sistema que ele contém, se elas não existirem

mariadb-ldb

é a ferramenta "RocksDB"

mariadb-plugin

é um utilitário que habilita os(as) administradores(as) "MySQL" a gerenciar quais "plugins" um servidor "MySQL" carrega

mariadb-secure-installation

é uma ferramenta para melhorar a segurança da instalação do "MySQL"

mariadb-service-convert

gera uma unidade do "systemd" baseada nas configurações atuais do "mariadb"

mariadb-setpermission

configura permissões nas tabelas de concessão do "MySQL"

mariadb-show

mostra a estrutura de uma base de dados "MariaDB"

mariadb-slap

é um aplicativo de diagnóstico projetado para emular a carga do cliente para um servidor "MySQL" e informar o tempo de cada estágio

mariadb-test

executa um caso de teste em um servidor "MySQL" e, opcionalmente, compara a saída gerada com um arquivo de resultado

mariadb-test-embedded

é semelhante ao comando "mysqltest", mas é construído com suporte para o servidor incorporado "libmysqld"

mariadb-tzinfo-to-sql

carrega as tabelas de fuso horário na base de dados "mysql"

mariadb-upgrade

examina todas as tabelas em todas as bases de dados em busca de incompatibilidades com a versão atual do Servidor "MySQL"

mariadb-waitpid

sinaliza um processo para terminar e espera que o processo saia

mariadb_config

obtém sinalizadores do compilador para usar o "Connector/C" do "MariaDB"

mbstream

é um utilitário para enviar cópias de segurança "InnoDB" e "XTraDB" por meio de um fluxo

msql2mysql

é uma ferramenta para converter aplicativos "mSQL" para uso com "MySQL"

my_print_defaults

exibe as opções a partir de grupos de opções de arquivos de opções

myisam_ftdump

exibe informações relativas a índices "FULLTEXT" em tabelas "MyISAM"

myisamchk

obtém informações relativas às tabelas da tua base de dados ou as verifica, repara ou otimiza

myisamlog

exibe o conteúdo do arquivo de registro do "MyISAM"

myisampack

é uma ferramenta para comprimir tabelas "MyISAM"

mysql_config

fornece informações úteis para compilar o teu cliente "MySQL" e conectá-lo ao "MySQL"

mytop

é uma ferramenta baseada em console para monitorar as camadas e o desempenho geral de um servidor "MySQL"

perror

é um utilitário que exibe descrições de códigos de erro do sistema ou do mecanismo de armazenamento

replace

é uma extensão "MariaDB"/"MySQL" para o padrão "SQL"

resolve_stack_dump

resolve um despejo numérico de pilha em símbolos

resolveip

é um utilitário para resolver endereços "IP" em nomes de dispositivo e vice-versa

sst_sump

despeja o conteúdo dos arquivos "sst" (o formato usado pelo "RocksDB")