Difference between revisions of "MySQL (Italiano)"

From ArchWiki
Jump to: navigation, search
(Traduzione)
m (Punto)
(2 intermediate revisions by the same user not shown)
Line 10: Line 10:
 
MySQL è un database SQL ampiamente diffuso e multi-threaded. Per maggiori informazioni sulle sue caratteristiche consultare la [http://www.mysql.it/ pagina ufficiale].
 
MySQL è un database SQL ampiamente diffuso e multi-threaded. Per maggiori informazioni sulle sue caratteristiche consultare la [http://www.mysql.it/ pagina ufficiale].
  
{{Note|MariaDB è l'implementazione ufficialmente adottata da Archlinux. Si raccomandano gli utenti di [[#Passare da Oracle MySQL a MariaDB|passare] a [[MariaDB]]. Oracle MySQL è in [[AUR]]. Annuncio ufficiale: [https://www.archlinux.org/news/mariadb-replaces-mysql-in-repositories/].}}
+
{{Note|MariaDB è l'implementazione ufficialmente adottata da Archlinux. Si raccomandano gli utenti di [[#Passare da Oracle MySQL a MariaDB|passare]] a MariaDB. Oracle MySQL è in [[AUR]]. Annuncio ufficiale: [https://www.archlinux.org/news/mariadb-replaces-mysql-in-repositories/].}}
  
 
== Installazione ==
 
== Installazione ==
  
[[pacman|Installare]] {{Pkg|mariadb}}, {{Pkg|libmariadbclient}} e {{Pkg|mariadb-clients}} dai [[repository ufficiali]].
+
[[pacman|Installare]] {{Pkg|mariadb}}, {{Pkg|libmariadbclient}} e {{Pkg|mariadb-clients}} dai [[official repositories|repository ufficiali]].
 
Alcune implementazioni alternative sono {{Pkg|percona-server}} and Oracle {{AUR|mysql}}.
 
Alcune implementazioni alternative sono {{Pkg|percona-server}} and Oracle {{AUR|mysql}}.
  
Avviare il [[demone]] {{ic|mysqld}}, eseguire lo script di installazione e riavviare:
+
Avviare il demone {{ic|mysqld}}, eseguire lo script di installazione e riavviare:
 
  # systemctl start mysqld
 
  # systemctl start mysqld
 
  # mysql_secure_installation
 
  # mysql_secure_installation
Line 26: Line 26:
 
=== Passare da Oracle MySQL a MariaDB ===
 
=== Passare da Oracle MySQL a MariaDB ===
  
Gli utenti che desiderano usare l'implementazione supportata devono installare '''mariadb''', '''libmariadbclient''' o '''mariadb-clients''' ed eseguire {{ic|mysql_upgrade}} per migrare i loro sistemi.
+
Gli utenti che desiderano usare l'implementazione supportata devono installare '''mariadb''', '''libmariadbclient''' o '''mariadb-clients''' ed eseguire {{ic|mysql_upgrade}} per migrare i propri sistemi.
 
  # systemctl stop mysqld
 
  # systemctl stop mysqld
 
  # pacman -S mariadb libmariadbclient mariadb-clients
 
  # pacman -S mariadb libmariadbclient mariadb-clients
Line 53: Line 53:
 
=== Abilitare il completamento automatico ===
 
=== Abilitare il completamento automatico ===
  
{{Note|Questa procedura allunga i tempi di inizializzazione del client MySQL}}
+
{{Note|Questa procedura allunga i tempi di inizializzazione del client MySQL.}}
 
Il completamento automatico nel client MySQL è disabilitato di default. Per abilitarlo per tutti gli utenti bisogna modificare {{ic|/etc/mysql/my.cnf}} e rimpiazzare {{ic|no-auto-rehash}} con {{ic|auto-rehash}}. Il completamento funzionerà dopo il riavvio del client MySQL.
 
Il completamento automatico nel client MySQL è disabilitato di default. Per abilitarlo per tutti gli utenti bisogna modificare {{ic|/etc/mysql/my.cnf}} e rimpiazzare {{ic|no-auto-rehash}} con {{ic|auto-rehash}}. Il completamento funzionerà dopo il riavvio del client MySQL.
  
Line 73: Line 73:
 
== Risoluzione di problemi ==
 
== Risoluzione di problemi ==
  
=== Il demone MySQL nono parte ===
+
=== Il demone MySQL non parte ===
  
 
Se MySQL non parte e non ci sono errori nei file di log, provate a verificare i permessi delle directory {{ic|/var/lib/mysql}} e {{ic|/var/lib/mysql/mysql}}. Se non appartengono a {{ic|mysql:mysql}}, impostatelo voi:
 
Se MySQL non parte e non ci sono errori nei file di log, provate a verificare i permessi delle directory {{ic|/var/lib/mysql}} e {{ic|/var/lib/mysql/mysql}}. Se non appartengono a {{ic|mysql:mysql}}, impostatelo voi:
Line 96: Line 96:
 
=== Impossibile eseguire mysql_upgrade perchè MySQL non parte ===
 
=== Impossibile eseguire mysql_upgrade perchè MySQL non parte ===
  
Provare in modalitàdi ripristino:
+
Provare in modalità di ripristino:
 
  # mysqld_safe --datadir=/var/lib/mysql/
 
  # mysqld_safe --datadir=/var/lib/mysql/
 
Eseguire:
 
Eseguire:
Line 103: Line 103:
 
=== Resettare la password di amministratore ===
 
=== Resettare la password di amministratore ===
  
Interrompere il [[servizio]] ''mysqld''. Eseguire questo comando:
+
Interrompere il servizio ''mysqld''. Eseguire questo comando:
 
  # mysqld_safe --skip-grant-tables &
 
  # mysqld_safe --skip-grant-tables &
 
Connettersi al server MySQL. Eseguire:
 
Connettersi al server MySQL. Eseguire:
Line 115: Line 115:
 
== Altre risorse ==
 
== Altre risorse ==
  
* [[LAMP]] - Articolo del wiki di Archlinux che si mostra come installare un server LAMP (Linux Apache MySQL PHP)
+
* [[LAMP (Italiano)|LAMP]] - Articolo del wiki di Archlinux che si mostra come installare un server LAMP (Linux Apache MySQL PHP)
 
* http://mariadb.org/ - Implementazione comunitaria
 
* http://mariadb.org/ - Implementazione comunitaria
 
* http://www.mysql.com/ - Implementazione di Oracle
 
* http://www.mysql.com/ - Implementazione di Oracle
 
* http://www.percona.com/software - Implementazione di Percona
 
* http://www.percona.com/software - Implementazione di Percona

Revision as of 10:57, 26 May 2013

MySQL è un database SQL ampiamente diffuso e multi-threaded. Per maggiori informazioni sulle sue caratteristiche consultare la pagina ufficiale.

Note: MariaDB è l'implementazione ufficialmente adottata da Archlinux. Si raccomandano gli utenti di passare a MariaDB. Oracle MySQL è in AUR. Annuncio ufficiale: [1].

Installazione

Installare mariadb, libmariadbclient e mariadb-clients dai repository ufficiali. Alcune implementazioni alternative sono percona-server and Oracle mysqlAUR.

Avviare il demone mysqld, eseguire lo script di installazione e riavviare:

# systemctl start mysqld
# mysql_secure_installation
# systemctl restart mysqld

Sono disponibili le interfacce mysql-gui-toolsAUR e mysql-workbenchAUR.

Passare da Oracle MySQL a MariaDB

Gli utenti che desiderano usare l'implementazione supportata devono installare mariadb, libmariadbclient o mariadb-clients ed eseguire mysql_upgrade per migrare i propri sistemi.

# systemctl stop mysqld
# pacman -S mariadb libmariadbclient mariadb-clients
# systemctl start mysqld
# mysql_upgrade -p

Aggiornare

È opportuno l'uso di questo comando dopo l'aggiornamento e l'avvio di MySQL:

# mysql_upgrade -u root -p

Configurazione

Una volta avviato il server MySQL, vorrete probabilmente aggiungere un account root con il quale gestire i database e gli utenti MySQL. Ciò è possibile o in maniera automatica, o manualmente, così come anticipato dall'output dello script precedente. O lanciate i comandi per settare la password per l'account root, oppure lanciate lo script di installazione sicura.

Ora potrete configurare il tutto dalla vostra interfaccia preferita. Per esempio usando la riga di comando di MySQL loggandovi come root sul vostro server MySQL:

$ mysql -p -u root

Disabilitare l'accesso remoto

Il server MySQL è fin da subito accessibile dalla rete. Se MySQL severe solo al computer locale, si può migliorare la sicurezza evitando i controlli della porta TCP 3306. Per rifiutare connesioni remote, togliete il commento alla seguente linea di /etc/mysql/my.cnf:

skip-networking

Questo non impedisce di connettersi al server sul computer locale.

Abilitare il completamento automatico

Note: Questa procedura allunga i tempi di inizializzazione del client MySQL.

Il completamento automatico nel client MySQL è disabilitato di default. Per abilitarlo per tutti gli utenti bisogna modificare /etc/mysql/my.cnf e rimpiazzare no-auto-rehash con auto-rehash. Il completamento funzionerà dopo il riavvio del client MySQL.

Backup

Il database può essere scaricato su un file per facilitare il backup. Il seguente script serve agevola l'operazione, creando il backup db_backup.gz nella stessa directory dello script:

#!/bin/bash

THISDIR=$(dirname $(readlink -f "$0"))

mysqldump --single-transaction --flush-logs --master-data=2 --all-databases \
  | gzip > $THISDIR/db_backup.gz
echo 'purge master logs before date_sub(now(), interval 7 day);' | mysql

Vedere ache la pagina su mysqldumpnel manuale di MySQL.

Risoluzione di problemi

Il demone MySQL non parte

Se MySQL non parte e non ci sono errori nei file di log, provate a verificare i permessi delle directory /var/lib/mysql e /var/lib/mysql/mysql. Se non appartengono a mysql:mysql, impostatelo voi:

 # chown mysql:mysql /var/lib/mysql -R

Se avete problemi di permessi anche dopo aver eseguito il comando, assicuratevi che esista una copia di my.cnf in /etc/:

 # cp /etc/mysql/my.cnf /etc/my.cnf

Riavviate.

Se leggete questi messaggi in /var/lib/mysql/hostname.err:

 [ERROR] Can't start server : Bind on unix socket: Permission denied
 [ERROR] Do you already have another mysqld server running on socket: /var/run/mysqld/mysqld.sock ?
 [ERROR] Aborting

/var/run/mysqld potrebbe avere i permessi sbagliati:

 # chown mysql:mysql /var/run/mysqld -R

Se mysqld mostra i seguenti errori:

Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist

Eseguite il comando per installare le tavole predefinite da /usr:

# cd /usr
# mysql_install_db --user=mysql --ldata=/var/lib/mysql/

Impossibile eseguire mysql_upgrade perchè MySQL non parte

Provare in modalità di ripristino:

# mysqld_safe --datadir=/var/lib/mysql/

Eseguire:

# mysql_upgrade -u root -p

Resettare la password di amministratore

Interrompere il servizio mysqld. Eseguire questo comando:

# mysqld_safe --skip-grant-tables &

Connettersi al server MySQL. Eseguire:

# mysql -u root mysql

Cambiare la password di amministratore:

 mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
 mysql> FLUSH PRIVILEGES;
 mysql> exit

Riavviare il servizio mysqld.

Altre risorse