GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare e configurare Mariadb 10 in Debian 11

MariaDB è stato sviluppato come fork software di MySQL nel 2009 in risposta all'acquisizione di MySQL da parte di Oracle. MariaDB intende rimanere un software libero e open source sotto la GNU General Public License. Fa parte della maggior parte delle offerte cloud e l'impostazione predefinita nella maggior parte delle distribuzioni Linux.

In questa guida impareremo come installare e configurare MariaDB in Debian 11.

Post correlati

  • Come installare Mysql 8 su Rocky Linux/Centos 8
  • Come installare e configurare Mariadb 10 in Ubuntu 20.04
  • Come installare e configurare Mariadb in Fedora 35
  • Come installare e configurare mysql 8 su Ubuntu 20.04

Prerequisiti

Per seguire, assicurati di avere:

  • Un server Debian 11 aggiornato
  • Accesso root al server o utente con accesso Sudo
  • Accesso a Internet dal server

Indice dei contenuti

  1. Aggiorna sistema
  2. Installazione di Mariadb
  3. Configurazione di Mariadb
  4. Facoltativo:regolazione dell'autenticazione utente e dei privilegi
  5. Testare MariaDB

1. Aggiorna il sistema

Prima di procedere assicuriamoci che il server Debian sia aggiornato. Prima aggiorna i repository, quindi esegui un aggiornamento del sistema per assicurarti che tutti i pacchetti installati siano aggiornati:

Nel tuo terminale, digita questi. Il -y opzione in apt upgrade è garantire che il sistema non si interrompa per accettare l'aggiornamento.

$ sudo apt update
$ sudo apt upgrade -y

2. Installazione di mariadb

Mariadb si trova nei repository predefiniti per debian. Utilizzare questo comando per installare il server del database:

sudo apt install -y mariadb-server

Mariadb verrà avviato per impostazione predefinita.

$ sudo systemctl status mariadb
● mariadb.service - MariaDB 10.5.12 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-11-12 07:31:38 UTC; 32s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 32218 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
    Process: 32219 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
    Process: 32221 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_>
    Process: 32328 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
    Process: 32330 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
   Main PID: 32296 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 14 (limit: 4626)
     Memory: 76.9M
        CPU: 703ms
     CGroup: /system.slice/mariadb.service
             └─32296 /usr/sbin/mariadbd

Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32335]: mysql
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32335]: performance_schema
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32335]: Phase 6/7: Checking and upgrading tables
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32335]: Processing databases
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32335]: information_schema
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32335]: performance_schema
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32335]: Phase 7/7: Running 'FLUSH PRIVILEGES'
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32335]: OK
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32945]: Checking for insecure root accounts.
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32952]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables

3. Configurazione di MariaDB

Per le nuove installazioni di MariaDB, il passaggio successivo è eseguire lo script di sicurezza incluso. Questo script modifica alcune delle opzioni predefinite meno sicure. Lo useremo per bloccare il root remoto accessi e per rimuovere gli utenti del database inutilizzati.

Esegui lo script di sicurezza:

sudo mysql_secure_installation

Questo ti guiderà attraverso una serie di prompt in cui puoi apportare alcune modifiche alle opzioni di sicurezza dell'installazione di MariaDB. La prima richiesta ti chiederà di inserire il database corrente root parola d'ordine. Poiché non ne abbiamo ancora impostato uno, premi ENTER per indicare “nessuno”.

La richiesta successiva ti chiede se desideri configurare un database root parola d'ordine. Digita N e quindi premi ENTER . In Debian, il root l'account per MariaDB è strettamente legato alla manutenzione automatizzata del sistema, quindi non dovremmo modificare i metodi di autenticazione configurati per quell'account. Ciò consentirebbe a un aggiornamento del pacchetto di interrompere il sistema del database rimuovendo l'accesso all'account amministrativo. Successivamente, illustreremo come configurare facoltativamente un account amministrativo aggiuntivo per l'accesso tramite password se l'autenticazione socket non è appropriata per il tuo caso d'uso.

Da lì, puoi premere Y e poi ENTER accettare le impostazioni predefinite per tutte le domande successive. Ciò rimuoverà alcuni utenti anonimi e il database di test, disabiliterà il root remoto login e caricare queste nuove regole in modo che MariaDB rispetti immediatamente le modifiche che hai apportato.

Questo è l'output del mio server

$ sudo mysql_secure_installation

NOTE: 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 current
password for the root user. If you've just installed MariaDB, and
haven'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 nobody
can 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 [Y/n]
Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

4. Facoltativo:regolazione dell'autenticazione e dei privilegi dell'utente

Nei sistemi Debian che eseguono MariaDB 10, il root L'utente MariaDB è impostato per l'autenticazione utilizzando il unix_socket plug-in per impostazione predefinita anziché con una password. Ciò consente una maggiore sicurezza e usabilità in molti casi, ma può anche complicare le cose quando è necessario consentire i diritti amministrativi di un programma esterno (ad es. phpMyAdmin).

Perché il server utilizza la root account per attività come la rotazione dei log e l'avvio e l'arresto del server, è meglio non modificare la root dettagli di autenticazione dell'account. Modifica delle credenziali in /etc/mysql/debian.cnf il file di configurazione potrebbe funzionare inizialmente, ma gli aggiornamenti del pacchetto potrebbero potenzialmente sovrascrivere tali modifiche. Invece di modificare la root account, i gestori del pacchetto consigliano di creare un account amministrativo separato per l'accesso basato su password.

Per farlo, creeremo un nuovo account chiamato admin con le stesse capacità del root account, ma configurato per l'autenticazione tramite password. Per fare ciò, apri il prompt di MariaDB dal tuo terminale, quindi crea un nuovo utente con root privilegi e accesso basato su password. Modifica il nome utente e la password in base alle tue preferenze:

$ mysql -h 127.0.0.1 -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 56
Server version: 10.5.12-MariaDB-0+deb11u1 Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'T*[email protected]^RDibAc%puz' WITH GRANT OPTION;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;

5. Test di MariaDB

Ora che mariadb è tutto configurato ed è in esecuzione, dobbiamo confermare che può accettare connessioni.

Per eseguire il test, connettiti a mariadb con l'utente root – mysql -h 127.0.0.1 -u root -p

Uscita:

$ mysql -h 127.0.0.1 -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 54
Server version: 10.5.12-MariaDB-0+deb11u1 Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Controlla la versione di mariadb:

MariaDB [(none)]> SELECT VERSION();
+---------------------------+
| VERSION()                 |
+---------------------------+
| 10.5.12-MariaDB-0+deb11u1 |
+---------------------------+
1 row in set (0.000 sec)

MariaDB [(none)]>

Per un ulteriore controllo, puoi provare a connetterti al database utilizzando il mysqladmin tool, che è un client che consente di eseguire comandi amministrativi. Ad esempio, questo comando dice di connettersi a MariaDB come root e restituire la versione utilizzando il socket Unix:

sudo mysqladmin version

Dovresti ricevere un output simile a questo:

$ sudo mysqladmin version
mysqladmin  Ver 9.1 Distrib 10.5.12-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Server version		10.5.12-MariaDB-0+deb11u1
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/run/mysqld/mysqld.sock
Uptime:			1 hour 38 min 27 sec

Threads: 1  Questions: 490  Slow queries: 0  Opens: 171  Open tables: 28  Queries per second avg: 0.082

Poiché hai configurato un utente amministrativo separato con autenticazione tramite password, puoi eseguire la stessa operazione digitando:

mysqladmin -u admin -p version

Ciò significa che MariaDB è attivo e funzionante e che il tuo utente è in grado di autenticarsi correttamente.

Conclusione

In questa guida hai installato MariaDB per fungere da server SQL. Durante il processo di installazione hai anche protetto il server.


Debian
  1. Come installare e configurare la finestra mobile su Debian 11

  2. Come installare e configurare Mariadb 10 in Ubuntu 20.04

  3. Come installare e configurare Mariadb in Fedora 35

  4. Come installare e configurare MongoDB 5 su Debian 11

  5. Come installare e configurare Redis 6 su Debian 11

Come installare e configurare Monit su Debian 9

Come installare e configurare Tripwire IDS su Debian 10

Come installare e configurare RabbitMQ su Debian 11

Come installare e configurare Memcached su Debian 11

Come installare e configurare Git in Debian 11

Come installare e configurare Apache su Debian 11?