MariaDB-11.4.4

Introduksjon til MariaDB

MariaDB er en fellesskapsutviklet gren og en drop-in erstatning for MySQL relasjonelle databasestyringssystem.

[Notat]

Notat

Utviklingsversjoner av BLFS kan ikke bygge eller kjøre noen pakker riktig hvis LFS eller avhengigheter har blitt oppdatert siden den siste stabile versjonene av bøkene.

Pakkeinformasjon

[Notat]

Notat

Den installerte størrelsen på MariaDB er 741 MB, men den kan bli redusert med ca. 263 MB, hvis ønskelig, ved å fjerne /usr/share/mariadb/test mappen etter installasjonen.

MariaDB Avhengigheter

Påkrevd

CMake-3.31.0

Anbefalt

Valgfri

Boost-1.86.0, libaio-0.3.113, libxml2-2.13.5, Linux-PAM-1.7.0, LZO-2.10, MIT Kerberos V5-1.21.3, pcre2-10.44, Ruby-3.3.6, sphinx-8.1.3, unixODBC-2.3.12, Valgrind-3.24.0, Groonga, KyTea, Judy, MeCab, MessagePack, mruby, MyRocks, Snappy, og ZeroMQ

Installasjon av MariaDB

[Advarsel]

Advarsel

MariaDB og MySQL kan ikke installeres på samme system uten omfattende endringer i byggekonfigurasjonen til en av de to applikasjonene.

Av sikkerhetsgrunner, å kjøre serveren som en uprivilegert bruker og gruppe oppfordres sterkt. Utsted følgende (som root) for å opprette bruker og gruppe:

groupadd -g 40 mariadb &&
useradd -c "MariaDB Server" -d /srv/mariadb -g mariadb -s /bin/false -u 40 mariadb

Installer MariaDB ved å kjøre følgende kommandoer:

mkdir build &&
cd    build &&

cmake -D CMAKE_BUILD_TYPE=Release                       \
      -D CMAKE_INSTALL_PREFIX=/usr                      \
      -D GRN_LOG_PATH=/var/log/groonga.log              \
      -D INSTALL_DOCDIR=share/doc/mariadb-11.4.4        \
      -D INSTALL_DOCREADMEDIR=share/doc/mariadb-11.4.4  \
      -D INSTALL_MANDIR=share/man                       \
      -D INSTALL_MYSQLSHAREDIR=share/mariadb            \
      -D INSTALL_MYSQLTESTDIR=share/mariadb/test        \
      -D INSTALL_PAMDIR=lib/security                    \
      -D INSTALL_PAMDATADIR=/etc/security               \
      -D INSTALL_PLUGINDIR=lib/mariadb/plugin           \
      -D INSTALL_SBINDIR=sbin                           \
      -D INSTALL_SCRIPTDIR=bin                          \
      -D INSTALL_SQLBENCHDIR=share/mariadb/bench        \
      -D INSTALL_SUPPORTFILESDIR=share/mariadb          \
      -D MYSQL_DATADIR=/srv/mariadb                     \
      -D MYSQL_UNIX_ADDR=/run/mariadb/mariadb.sock      \
      -D WITH_EXTRA_CHARSETS=complex                    \
      -D WITH_EMBEDDED_SERVER=ON                        \
      -D SKIP_TESTS=ON                                  \
      -D TOKUDB_OK=0                                    \                                 \
      .. &&
make

For å teste resultatene, kjør: make test. To tester, my_tzinfo og test-connect, er kjent for å mislykkes.

[Notat]

Notat

Et mer omfattende sett med tester kan kjøres med følgende:

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

Hvor N er antall tester som skal kjøres parallelt. Over 5400 tester kjøres i ca 24 SBU med N=4. Noen få tester kan mislykkes, hovedsakelig på grunn av tegnsettproblemer.

Nå, som root bruker:

make install

Parameterforklaringer

-D WITH_EMBEDDED_SERVER=ON: Denne bryteren aktiverer kompilering av det innebygde serverbiblioteket som trengs av visse applikasjoner, som for eksempel Amarok.

-D WITH_EXTRA_CHARSETS=complex: Denne bryteren aktiverer støtte for komplekse tegnsett.

-D SKIP_TESTS=ON: Denne bryteren deaktiverer tester for MariaDB Connector/C som ikke støttes uten ekstra oppsett.

-D WITHOUT_SERVER=ON: Bruk denne bryteren hvis du ikke vil ha serveren og bare ønsker å bygge klienten.

[Notat]

Notat

Det er mange alternativer tilgjengelig for cmake. Sjekk utdataen av cmake . -LH for tilleggs tilpasningsalternativer.

Konfigurere MySQL

Konfigurasjonsfiler

/etc/mariadb/my.cnf og ~/.my.cnf

Konfigurasjonsinformasjon

Lag en grunnleggende /etc/mariadb/my.cnf fil ved å bruke følgende kommando som root bruker:

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

# The following options will be passed to all MySQL clients
[client]
#password       = your_password
port            = 3306
socket          = /run/mariadb/mariadb.sock

# The MySQL server
[mariadb]
port            = 3306
socket          = /run/mariadb/mariadb.sock
datadir         = /srv/mariadb
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 16K
myisam_sort_buffer_size = 8M

# Don't listen on a TCP/IP port at all.
skip-networking

# required unique id between 1 and 2^32 - 1
server-id       = 1

# Uncomment the following if you are using BDB tables
#bdb_cache_size = 4M
#bdb_max_lock = 10000

# InnoDB tables are now used by default
innodb_data_home_dir = /srv/mariadb
innodb_log_group_home_dir = /srv/mariadb
# All the innodb_xxx values below are the default ones:
innodb_data_file_path = ibdata1:12M:autoextend
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
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

[mariadbdump]
quick
max_allowed_packet = 16M

[mariadb]
no-auto-rehash
# Remove the next comment character if you are not familiar with 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

[mariadbhotcopy]
interactive-timeout

# End /etc/mariadb/my.cnf
EOF

Du kan nå installere en database og endre eierskapet til uprivilegert bruker og gruppe (utfør som root bruker):

mariadb-install-db --basedir=/usr --datadir=/srv/mariadb --user=mariadb &&
chown -R mariadb:mariadb /srv/mariadb

Ytterligere konfigurasjon krever at MariaDB serveren kjører. Start serveren ved bruk av følgende kommandoer som root bruker:

install -v -m755 -o mariadb -g mariadb -d /run/mariadb &&
mariadbd-safe --user=mariadb 2>&1 >/dev/null &

En standardinstallasjon setter ikke opp et passord for administrator, så bruk følgende kommando som root bruker til å angi et.

mariadb-admin -u root password

Konfigurasjonen av serveren er nå fullført. Stopp serveren ved å bruke følgende kommando som root bruker:

mariadb-admin -p shutdown

Systemd Enhet

Installer mariadb.service enheten inkludert i blfs-systemd-units-20240916 pakken som root bruker for å starte MariaDB serveren under oppstart av systemet.

make install-mariadb
[Notat]

Notat

Hvis du allerede har en eksisterende database og denne installasjonen av binærfiler bare var en oppgradering til en nyere versjon, sjekk oppstrømsdokumentasjonen for oppgradering. Det anbefales å kjøre:

mariadb-upgrade

Innhold

Installerte Programmer: 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, og wsrep_sst_rsync
Installerte Biblioteker: libmariadb.a (symbolkobling til libmariadbclient.a), libmariadb.so (symbolkobling til libmariadb.so.3), libmariadbclient.a, libmariadbd.a, libmariadbd.so (symbolkobling til libmariadbd.so.19), libmariadbd.so.19, libmariadb.so.3, libmysqlclient.a (symbolkobling til libmariadbclient.a), libmysqlclient.so (symbolkobling til libmariadb.so.3), libmysqlclient_r.a (symbolkobling til libmariadbclient.a), libmysqlclient_r.so (symbolkobling til libmariadbclient.a), libmysqld.a (symbolkobling til libmariadbd.a), libmysqld.so (symbolkobling til libmariadbd.so.19), libmysqlservices.a, og ca 70 moduler under /usr/lib/mysql/plugin/
Installerte Mapper: /usr/{include,lib,share}/mysql, /usr/share/groonga{,-normalizer-mysql}, og /usr/share/doc/mariadb-11.4.4

Korte Beskrivelser

Det er flere symbolkoblinger fra mysql* til deres mariadb motparter. Disse opprettholdes for kompatibilitet.

Perl DBI moduler må installeres for at noen av MariaDB støtteprogrammer vil fungere ordentlig.

Korte Beskrivelser

aria_chk

brukes til å sjekke, reparere, optimalisere, sortere og få informasjon om Aria tabeller

aria_dump_log

er et verktøy for å dumpe innholdet på Aria loggsider

aria_ftdump

viser fulltekstindeksinformasjon

aria_pack

er et verktøy for å generere komprimerte, skrivebeskyttede Aria tabeller

aria_read_log

viser innholdet i Aria loggfilen

aria_s3_copy

kopierer en aria tabell til og fra AWS S3

galera_new_cluster

starter opp en ny Galera klynge

galera_recovery

gjenoppretter data fra en Galera klynge

innochecksum

skriver ut sjekksummer for InnoDB filer

mariabackup

er et åpen kildekode sikkerhetskopieringsverktøy for InnoDB og XtraDB

mariadb

er et enkelt SQL skall med redigeringsmuligheter for inndatalinjer

mariadbd

er MySQL server nissen

mariadb-access

kontrollerer tilgangsrettighetene for et vertsnavn, brukernavn og database kombinasjon

mariadb-admin

er en klient for å utføre administrative operasjoner

mariadb-binlog

leser binære loggfiler

mariadb-check

utfører tabellvedlikehold: Den sjekker, reparerer, optimerer, eller analyserer tabeller

mariadb-client-test

brukes til å teste aspekter ved MySQL klient API som ikke kan bli testet med mariadb-test og dets testspråk

mariadb-client-test-embedded

er et verktøy for å teste klient API for den innebygde serveren

mariadb-conv

konverterer tegnsett for bruk med MariaDB

mariadb-convert-table-format

konverterer tabellene i en database til å bruke en bestemt lagringsmotor

mariadbd-multi

er designet for å administrere flere mariadb prosesser som lytter etter tilkoblinger på forskjellige Unix socket filer og TCP/IP porter

mariadbd-safe

er den anbefalte måten å starte en mariadb server på Unix og NetWare

mariadb-dump

er et sikkerhetskopieringsprogram

mariadb-dumpslow

analyserer MySQL sakte spørringsloggfiler og skriver ut et sammendrag av deres innhold

mariadb-embedded

er en MySQL klient statisk koblet til libmariadbd

mariadb-find-rows

leser filer som inneholder SQL setninger og trekker ut setninger som samsvarer med et gitt regulært uttrykk eller som inneholder USE db_name eller SET uttalelser

mariadb-fix-extensions

konverterer utvidelsene for MyISAM (eller ISAM) tabellfiler til deres kanoniske former

mariadb-hotcopy

låser tabellen, spyler tabellen og utfører deretter en kopi av databasen

mariadb-import

leser en rekke av dataformater, og setter inn dataene i en database

mariadb-install-db

initialiserer MySQL datamappen og oppretter systemets tabeller som den inneholder, hvis de ikke finnes

mariadb-ldb

er RocksDB verktøyet

mariadb-plugin

er et verktøy som lar MySQL administratorer administrere hvilke programtillegg en MySQL server laster inn

mariadb-secure-installation

er et verktøy for å forbedre MySQL installasjonssikkerheten

mariadb-service-convert

genererer en systemd enhet basert på gjeldende mariadb innstillinger

mariadb-setpermission

setter tillatelser i MySQL tildelingstabellene

mariadb-show

viser strukturen til en MariaDB database

mariadb-slap

er et diagnoseprogram utviklet for å emulere klientbelastning for en MySQL server og for å rapportere tidspunktet for hvert trinn

mariadb-test

kjører en testsak mot en MySQL server og sammenligner eventuelt utdataen med en resultatfil

mariadb-test-embedded

ligner på mariadb-test kommandoen, men er bygget med støtte for den innebygde libmariadbd serveren

mariadb-tzinfo-to-sql

laster tidssonetabellene i mariadb databasen

mariadb-upgrade

undersøker alle tabeller i alle databaser for inkompatibiliteter med gjeldende versjon av MySQL Server

mariadb-waitpid

signaliserer at en prosess skal avsluttes og venter på at prosessen avsluttes

mariadb_config

får kompilatorflagg for bruk av MariaDB Connector/C

mbstream

er et verktøy for å sende InnoDB og XTraDB sikkerhetskopier over en strøm

msql2mysql

er et verktøy for å konvertere mSQL programmer for bruk med MySQL

my_print_defaults

viser alternativene fra alternativgrupper med alternativfiler

myisam_ftdump

viser informasjon om FULLTEXT indekser i MyISAM tabeller

myisamchk

får informasjon om databasetabellene dine eller kontroller, reparerer, eller optimaliserer dem

myisamlog

viser innholdet i MyISAM loggfilen

myisampack

er et verktøy for å komprimere MyISAM tabeller

mysql_config

gir deg nyttig informasjon for å kompilere din MySQL klient og koble den til MySQL

mytop

er et konsollbasert verktøy for å overvåke trådene og generelt ytelsen til en MySQL server

perror

er et verktøy som viser beskrivelser for systemets eller lagrings motorfeilkoder

replace

er MariaDB/MySQL utvidelse til SQL standarden

resolve_stack_dump

løser en numerisk stabeldump til symboler

resolveip

er et verktøy for å løse IP adresser til vertsnavn og omvendt

sst_sump

dumper innholdet i sst filer (formatet som brukes av RocksDB)