Febbraio 3, 2022

Supporto di Rete

Installare il Server MySQL sul sistema operativo Ubuntu

Ultimo aggiornamento: 2019-12-20

Scritto da: Jered Heeschen

MySQL è un database relazionale di origine che è gratuito e ampiamente utilizzato. È una buona scelta se sai che hai bisogno di un database ma non sai molto di 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 il tuo applicationdocumentation per i dettagli.

Installa MySQL

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

sudo apt-get updatesudo apt-get install mysql-server

Il programma di installazione installa MySQL e tutte le dipendenze.

Se l’utilità di installazione sicura non viene avviata automaticamente al termine dell’installazione, immettere il seguente comando:

sudo mysql_secure_installation utility

Questa utility richiede di definire la password di root mysql e altre opzioni relative alla sicurezza, tra cui la rimozione degli accessi remoti all’utente root e l’impostazione della password di root.

Consenti accesso remoto

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

Eseguire il seguente comando per consentire l’accesso remoto al server mysql:

sudo ufw enablesudo ufw allow mysql

Avviare il servizio MySQL

Al termine dell’installazione, è possibile avviare il servizio di database eseguendo il seguente comando. Se il servizio è già iniziato, un messageinforms che il servizio è già in esecuzione:

sudo systemctl start mysql

Lancio al riavvio

Per accertarsi che il server di database lancia dopo un riavvio, eseguire il followingcommand:

sudo systemctl enable mysql

Configurare le interfacce

MySQL, per impostazione predefinita non è più associato a ( ascolto ) qualsiasi remota di interfacce accessibili.Modifica la direttiva “bind-address” in / etc / mysql / mysql.conf.d / msiqld.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. )

Riavviare il servizio mysql.

sudo systemctl restart mysql

Avvia la shell mysql

C’è più di un modo per lavorare con un server MySQL, ma questo articolosi concentra sull’approccio più semplice e compatibile, la shell mysql.

  1. Al prompt dei comandi, eseguire il seguente comando per avviare la shell mysql e inserirla come utente root:

    /usr/bin/mysql -u root -p
  2. Quando ti viene richiesta una password, inserisci quella impostata al momento dell’installazione o, se non ne hai impostata una, premi Invio per inviare nopassword.

    Dovrebbe apparire il seguente prompt della shell mysql :

    mysql>

Impostare la password di root

Se si è effettuato l’accesso inserendo una password vuota o se si desidera modificare la rootpassword impostata, è possibile creare o modificare la password.

  1. Per le versioni precedenti a MySQL 5.7, immettere il seguente comando nella shell mysql, sostituire password con la nuova password:

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

    Per la versione MySQL 5.7 e versioni successive, immettere il seguente comando nella shell mysql, sostituendo password con la 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 all-caps per i comandi SQL. Se digiti thosecommands in minuscolo, funzioneranno. Per convenzione, i comandi sono scritti in all-caps per distinguerli dai nomi dei campi e dagli altri dati che vengono manipolati.

Se è necessario reimpostare la password di root in seguito, vedere Reimpostare una password di root MySQL.

Visualizza utenti

MySQL memorizza le informazioni dell’utente nel proprio database. Il nome del databaseè mysql. All’interno di tale database le informazioni utente si trovano in una tabella, adataset, denominata user. Se si desidera vedere quali utenti sono impostati nella tabella MySQLuser, eseguire il seguente comando:

SELECT User, Host, authentication_string FROM mysql.user;

Il seguente elenco descrive le parti di quel comando:

  • SELECT dice a MySQL che stai chiedendo i dati.
  • User, Host, authentication_string dice a MySQL quali campi vuoi che guardino. 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 voce della password crittografata.
  • DA mysql.utente ” dice a MySQL di ottenere i dati dal mysqldatabase e dalla tabella utente.
  • Un punto e virgola (;) termina il comando.

Nota: tutte le query SQL terminano con un punto e virgola. MySQL non elabora una queryfino a quando non si digita un punto e virgola.

Host utente

Il seguente esempio è l’output per la 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, l’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 è necessario impostare un utente per un solo host, quello da cui youtypically connettersi.

Se si esegue l’applicazione sullo stesso computer del MySQLserver, l’host a cui si connette per impostazione predefinita è localhost. Qualsiasi newusers che si crea deve avere localhost nel loro campo host.

Se l’applicazione si connette in remoto, la voce host 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.E ‘ un utente anonimo. Quando un client si connette senza nome utente specificato, sta tentando di connettersi come utente anonimo.

Di solito non vuoi utenti anonimi, ma alcune installazioni MySQL ne includono una 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 thoughthe termini sono spesso usati in modo intercambiabile. MySQL è un server di database, il che significatraccia i database e controlla l’accesso ad essi. Il database memorizza i dati, ed è il database a cui le applicazioni stanno tentando di accedere quando interagiscono con MySQL.

Alcune applicazioni creano un database come parte del loro processo di installazione, ma othersrequire di creare un database da soli e dire theapplication su di esso.

Per creare un database, accedere alla shell mysql ed eseguire il seguente comando, sostituendo demodb con il nome del database che si desidera 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 di 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, viene creato un utente denominato demouser.

  1. Per creare un nuovo utente, eseguire il seguente comando nella shell mysql :

    INSERT INTO mysql.user (User,Host,authentication_string,ssl_cipher,x509_issuer,x509_subject)VALUES('demouser','localhost',PASSWORD('demopassword'),'','','');
  2. Quando si apportano modifiche alla tabella utente nel database mysql, tellMySQL per leggere le modifiche svuotando i privilegi, come segue:

    FLUSH PRIVILEGES;
  3. Verificare 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 |+------------------+-----------+-------------------------------------------+

Concedere le autorizzazioni 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.

Sommario

Se stai solo creando un database e un utente, hai finito. Il conceptscovered qui dovrebbe darvi un solido inizio da cui imparare di più.

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.