GNU/Linux >> Linux Esercitazione >  >> Linux

Installa MySQL Server sul sistema operativo Ubuntu

MySQL è un database relazionale open source gratuito e ampiamente utilizzato. È una buona scelta se sai di aver bisogno di un database ma non sai molto su tutte le opzioni disponibili.

Questo articolo descrive un'installazione di base di un server di database MySQL sul sistema operativo Ubuntu. Potrebbe essere necessario installare altri pacchetti per consentire alle applicazioni di utilizzare MySQL, come le estensioni per PHP. Controlla la documentazione della tua domanda per i dettagli.

Installa MySQL

Installa il server MySQL utilizzando il gestore di pacchetti del sistema operativo Ubuntu:

sudo apt-get update
sudo apt-get install mysql-server

Il programma di installazione installa MySQL e tutte le dipendenze.

Se l'utilità di installazione sicura non si avvia automaticamente al termine dell'installazione, immettere il comando seguente:

sudo mysql_secure_installation utility

Questa utility ti chiede di definire la password di root mysql e altre opzioni relative alla sicurezza, inclusa la rimozione dell'accesso remoto all'utente root e l'impostazione della password di root.

Consenti accesso remoto

Se hai iptables abilitato e vuoi connetterti al database MySQL da un'altra macchina, devi aprire una porta nel firewall del tuo server (la porta predefinita è 3306). Non è necessario farlo se l'applicazione che utilizza MySQL è in esecuzione sullo stesso server.

Eseguire il comando seguente per consentire l'accesso remoto al server MySQL:

sudo ufw enable
sudo ufw allow mysql

Avvia il servizio MySQL

Al termine dell'installazione, è possibile avviare il servizio database eseguendo il comando seguente. Se il servizio è già avviato, un messaggio ti informa che il servizio è già in esecuzione:

sudo systemctl start mysql

Avvia al riavvio

Per garantire che il server di database venga avviato dopo un riavvio, eseguire il comando seguente:

sudo systemctl enable mysql

Configura interfacce

MySQL, per impostazione predefinita, non è più vincolato (in ascolto su) a nessuna interfaccia accessibile in remoto. Modifica la direttiva "bind-address" in /etc/mysql/mysql.conf.d/mysqld.cnf:

bind-address		= 127.0.0.1 ( The default. )
bind-address		= XXX.XXX.XXX.XXX ( The ip address of your Public Net interface. )
bind-address		= ZZZ.ZZZ.ZZZ.ZZZ ( The ip address of your Service Net interface. )
bind-address		= 0.0.0.0 ( All ip addresses. )

Riavvia il servizio MySQL.

sudo systemctl restart mysql

Avvia la shell mysql

C'è più di un modo per lavorare con un server MySQL, ma questo articolo si concentra sull'approccio più semplice e compatibile, il mysql guscio.

  1. Al prompt dei comandi, esegui il comando seguente per avviare mysql shell e inseriscilo come utente root:

    /usr/bin/mysql -u root -p
    
  2. Quando ti viene richiesta una password, inserisci quella che hai impostato al momento dell'installazione oppure, se non l'hai impostata, premi Invio per inviare nessuna password.

    Il seguente mysql dovrebbe apparire il prompt della shell:

    mysql>
    

Imposta la password di root

Se hai effettuato l'accesso inserendo una password vuota o se desideri modificare la password di root che hai impostato, puoi creare o modificare la password.

  1. Per le versioni precedenti a MySQL 5.7, immetti il ​​seguente comando in mysql shell, sostituisci password con la tua nuova password:

    UPDATE mysql.user SET Password = PASSWORD('password') WHERE User = 'root';
    

    Per la versione MySQL 5.7 e successive, inserisci il seguente comando in mysql shell, sostituendo password con la tua nuova password:

    UPDATE mysql.user SET authentication_string = PASSWORD('password') WHERE User = 'root';
    
  2. Per rendere effettiva la modifica, ricaricare le informazioni utente memorizzate con il seguente comando:

    FLUSH PRIVILEGES;
    

    Nota :Stiamo usando tutte le maiuscole per i comandi SQL. Se digiti quei comandi in minuscolo, funzioneranno. Per convenzione, i comandi sono scritti in maiuscolo per distinguerli dai nomi dei campi e da altri dati che vengono manipolati.

Se è necessario reimpostare la password di root in un secondo momento, vedere Reimpostare una password di root MySQL.

Visualizza utenti

MySQL memorizza le informazioni sull'utente nel proprio database. Il nome del database è mysql . All'interno di quel database le informazioni sull'utente si trovano in una tabella, un set di dati, denominata utente . Se vuoi vedere quali utenti sono impostati nella tabella MySQLuser, esegui il seguente comando:

SELECT User, Host, authentication_string FROM mysql.user;

L'elenco seguente descrive le parti di quel comando:

  • SELEZIONA dice a MySQL che stai chiedendo dati.
  • Utente , Ospite , stringa_autenticazione dice a MySQL in quali campi vuoi che guardi. I campi sono categorie per i dati in una tabella. In questo caso, stai cercando il nome utente, l'host associato al nome utente e la password crittografata.
  • DA mysql.user " dice a MySQL di ottenere i dati da mysql database e l'utente tabella.
  • Un punto e virgola (;) termina il comando.

Nota :tutte le query SQL terminano con un punto e virgola. MySQL non elabora una query finché non si digita un punto e virgola.

host utente

L'esempio seguente è l'output della query precedente:

SELECT User, Host, authentication_string FROM mysql.user;
+------------------+-----------+-------------------------------------------+
| User             | Host      | authentication_string                     |
+------------------+-----------+-------------------------------------------+
| root             | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
| mysql.session    | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys        | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| debian-sys-maint | localhost | *27E7CA2445405AB10C656AFD0F86AF76CCC57692 |
+------------------+-----------+-------------------------------------------+

Gli utenti sono associati a un host, in particolare all'host da cui si connettono. L'utente root in questo esempio è definito per localhost , per l'indirizzo IP di localhost e il nome host del server. Di solito devi impostare un utente per un solo host, quello da cui ti connetti di solito.

Se stai eseguendo la tua applicazione sullo stesso computer del server MySQL, l'host a cui si connette per impostazione predefinita è localhost . Tutti i nuovi utenti che crei devono avere localhost nel loro host campo.

Se la tua applicazione si connette in remoto, l'host la voce che MySQL cerca è l'indirizzo IP o il nome host DNS del computer remoto (quello da cui proviene il client).

Utenti anonimi

Nell'output di esempio, una voce ha un valore host ma nessun nome utente o password. Quello è un utente anonimo . Quando un client si connette senza il nome utente specificato, sta tentando di connettersi come utente anonimo.

Di solito non vuoi utenti anonimi, ma alcune installazioni MySQL ne includono uno per impostazione predefinita. Se ne vedi uno, dovresti eliminare l'utente (fare riferimento al nome utente con virgolette vuote, come " ") o impostare una password per esso.

Crea un database

C'è una differenza tra un server di database e un database , anche questi termini sono spesso usati in modo intercambiabile. MySQL è un server di database, il che significa che tiene traccia dei database e ne controlla l'accesso. Il database memorizza i dati ed è il database a cui le applicazioni tentano di accedere quando interagiscono con MySQL.

Alcune applicazioni creano un database come parte del loro processo di configurazione, ma altre richiedono che tu crei un database tu stesso e ne parli all'applicazione.

Per creare un database, accedi a mysql shell ed eseguire il comando seguente, sostituendo demodb con il nome del database che vuoi creare:

CREATE DATABASE demodb;

Dopo aver creato il database, è possibile verificarne la creazione eseguendo una query per elencare tutti i database. L'esempio seguente mostra la query e l'output di esempio:

SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| demodb             |
| mysql              |
+--------------------+
3 rows in set (0.00 sec)

Aggiungi un utente del database

Quando le applicazioni si connettono al database utilizzando l'utente root, di solito hanno più privilegi di quelli necessari. È possibile aggiungere utenti che le applicazioni possono utilizzare per connettersi al nuovo database. Nell'esempio seguente, un utente denominato demouser viene creato.

  1. Per creare un nuovo utente, esegui il seguente comando in mysql guscio:

    INSERT INTO mysql.user (User,Host,authentication_string,ssl_cipher,x509_issuer,x509_subject)
    VALUES('demouser','localhost',PASSWORD('demopassword'),'','','');
    
  2. Quando apporti modifiche all'utente tabella in mysql database, di' a MySQL di leggere le modifiche cancellando i privilegi, come segue:

    FLUSH PRIVILEGES;
    
  3. Verifica che l'utente sia stato creato eseguendo nuovamente una query SELECT:

    SELECT User, Host, authentication_string FROM mysql.user;
    
    +------------------+-----------+-------------------------------------------+
    | User             | Host      | Password                                  |
    +------------------+-----------+-------------------------------------------+
    | root             | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
    | mysql.session    | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
    | mysql.sys        | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
    | debian-sys-maint | localhost | *27E7CA2445405AB10C656AFD0F86AF76CCC57692 |
    | demouser         | localhost | *0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6 |
    +------------------+-----------+-------------------------------------------+
    

Concedi i permessi utente del database

Subito dopo aver creato un nuovo utente, non ha privilegi. L'utente può accedere, ma non può essere utilizzato per apportare modifiche al database.

  1. Concedi all'utente le autorizzazioni complete per il tuo nuovo database eseguendo il seguente comando:

    GRANT ALL PRIVILEGES ON demodb.* to demouser@localhost;
    
  2. Elimina i privilegi per rendere ufficiale la modifica eseguendo il comando seguente:

    FLUSH PRIVILEGES;
    
  3. Per verificare che tali privilegi siano impostati, eseguire il comando seguente:

    SHOW GRANTS FOR 'demouser'@'localhost';
    2 rows in set (0.00 sec)
    

    MySQL restituisce i comandi necessari per riprodurre i permessi di quell'utente se dovessi ricostruire il server. USAGE on \*.\* significa che gli utenti non ottengono privilegi su nulla per impostazione predefinita. Quel comando è sovrascritto dal secondo comando, che è la concessione che hai eseguito per il nuovo database.

    +-----------------------------------------------------------------------------------------------------------------+
    | Grants for demouser@localhost                                                                                   |
    +-----------------------------------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' |
    | GRANT ALL PRIVILEGES ON `demodb`.* TO 'demouser'@'localhost'                                                    |
    +-----------------------------------------------------------------------------------------------------------------+
    2 rows in set (0.00 sec)
    

Riepilogo

Se stai solo creando un database e un utente, hai finito. I concetti trattati qui dovrebbero darti un solido inizio da cui partire per saperne di più.

  • Configura il server MySQL sul sistema operativo Ubuntu
  • Reimposta una password di root MySQL

Linux
  1. Come installare MySQL Server su Ubuntu 16.04

  2. Come installare MySQL Server su Ubuntu 17.04

  3. Come installare il server Web Apache su Ubuntu

  4. Come installare MySQL su Ubuntu 16.04

  5. Installa IMAP per PHP 7.1 sul sistema operativo Ubuntu

Come installare MySQL 8.0 su Ubuntu 18.04

Graylog Monitoring Server su Ubuntu Linux per Monitoring Server/Services

La guida completa per installare MySQL su Ubuntu

Come installare LAMP su un server Ubuntu 15.04

Come installare MySQL 8.0 su Ubuntu 18.04

Come installare MySQL Server su Ubuntu 20.04