Difference between revisions of "MySQL (Italiano)"

From ArchWiki
Jump to: navigation, search
(Rifare mysql)
(synchronized interlanguage links with the other wikis)
(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
[[Category:Database management systems]]
+
[[Category:Database management systems (Italiano)]]
 
[[cs:MySQL]]
 
[[cs:MySQL]]
 
[[de:MySQL]]
 
[[de:MySQL]]
 +
[[en:MySQL]]
 
[[es:MySQL]]
 
[[es:MySQL]]
 
[[fr:MySQL]]
 
[[fr:MySQL]]
[[it:MySQL]]
+
[[ja:MySQL]]
 
[[sr:MySQL]]
 
[[sr:MySQL]]
 
[[tr:MySQL]]
 
[[tr:MySQL]]
Line 10: Line 11:
 
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] 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 ==
  
The MySQL implementation choosen by Archlinux is called MariaDB.
+
[[pacman|Installare]] {{Pkg|mariadb}}, {{Pkg|libmariadbclient}} e {{Pkg|mariadb-clients}} dai [[official repositories|repository ufficiali]].
[[pacman|Install]] {{Pkg|mariadb}}, {{Pkg|libmariadbclient}}, {{Pkg|mariadb-clients}} packages from the [[official repositories]].
+
Alcune implementazioni alternative sono {{Pkg|percona-server}} and Oracle {{AUR|mysql}}.
Alternate implamantations are {{Pkg|percona-server}} and Oracle {{AUR|mysql}}.
+
  
Start the {{ic|mysqld}} [[daemon]], run the setup script and restart the daemon afterwards:
+
Avviare il demone {{ic|mysqld}}, eseguire lo script di installazione e riavviare:
 
  # systemctl start mysqld
 
  # systemctl start mysqld
 
  # mysql_secure_installation
 
  # mysql_secure_installation
 
  # systemctl restart mysqld
 
  # systemctl restart mysqld
  
Frontends available are {{AUR|mysql-gui-tools}} and {{AUR|mysql-workbench}}.
+
Sono disponibili le interfacce {{AUR|mysql-gui-tools}} e {{AUR|mysql-workbench}}.
  
=== Upgrade from Oracle MySQL to MariaDB ===
+
=== Passare da Oracle MySQL a MariaDB ===
  
Users who want to switch will need to install mariadb, libmariadbclient or mariadb-clients and execute mysql_upgrade in order to migrate their systems.
+
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 33: Line 33:
 
  # mysql_upgrade -p
 
  # mysql_upgrade -p
  
== Configuration ==
+
=== Aggiornare ===
  
Once you have started the MySQL server, you probably want to add a root account in order to maintain your MySQL users and databases. This can be done manually or automatically, as mentioned by the output of the above script. Either run the commands to set a password for the root account, or run the secure installation script.
+
È opportuno l'uso di questo comando dopo l'aggiornamento e l'avvio di MySQL:
 +
# mysql_upgrade -u root -p
 +
 
 +
== Configurazione ==
  
You now should be able to do further configuration using your favorite interface. For example you can use MySQL's command line tool to log in as root into your MySQL server:
+
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
 
  $ mysql -p -u root
  
=== Disable remote access ===
+
=== Disabilitare l'accesso remoto ===
  
The MySQL server is accessible from the network by default. If mysql is only needed for the localhost, you can improve security by not listening on TCP port 3306. To refuse remote connections, uncomment the following line in {{ic|/etc/mysql/my.cnf}}:
+
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 {{ic|/etc/mysql/my.cnf}}:
 
  skip-networking
 
  skip-networking
  
You will still be able to log in from the localhost.
+
Questo non impedisce di connettersi al server sul computer locale.
  
=== Enable auto-completion ===
+
=== Abilitare il completamento automatico ===
  
The MySQL client completion feature is disabled by default. To enable it system-wide edit {{ic|/etc/mysql/my.cnf}}, and replace {{ic|no-auto-rehash}} by {{ic|auto-rehash}}. Completion will be enabled next time you run the MySQL client. Please note that enabling this feature can make the client initialization longer.
+
{{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.
== Upgrading ==
+
 
+
You might consider running this command after you have upgraded MySQL and started it:
+
# mysql_upgrade -u root -p
+
  
 
== Backup ==
 
== Backup ==
  
The database can be dumped to a file for easy backup. The following shell script will do this for you, creating a {{ic|db_backup.gz}} file in the same directory as the script, containing your database dump:
+
Il database può essere scaricato su un file per facilitare il backup. Il seguente script serve agevola l'operazione, creando il backup {{ic|db_backup.gz}} nella stessa directory dello script:
  
 
{{bc|1=
 
{{bc|1=
Line 69: Line 70:
 
echo 'purge master logs before date_sub(now(), interval 7 day);' |</nowiki> mysql
 
echo 'purge master logs before date_sub(now(), interval 7 day);' |</nowiki> mysql
 
}}
 
}}
 +
Vedere ache la [http://dev.mysql.com/doc/refman/5.6/en/mysqldump.html pagina] su {{ic|mysqldump}}nel manuale di MySQL.
  
See also the official [http://dev.mysql.com/doc/refman/5.6/en/mysqldump.html mysqldump page in the MySQL manual].
+
== Risoluzione di problemi ==
  
== Troubleshooting ==
+
=== Il demone MySQL non parte ===
  
=== MySQL daemon cannot start ===
+
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:
 
+
If MySQL fails to start and there is no entry in the log files, you might want to check the permissions of files in the directories {{ic|/var/lib/mysql}} and {{ic|/var/lib/mysql/mysql}}. If the owner of files in these directories is not {{ic|mysql:mysql}}, you should do the following:
+
 
   # chown mysql:mysql /var/lib/mysql -R
 
   # chown mysql:mysql /var/lib/mysql -R
If you run into permission problems despite having followed the above, ensure that your {{ic|my.cnf}} is copied to {{ic|/etc/}}:
+
Se avete problemi di permessi anche dopo aver eseguito il comando, assicuratevi che esista una copia di {{ic|my.cnf}} in {{ic|/etc/}}:
 
   # cp /etc/mysql/my.cnf /etc/my.cnf
 
   # cp /etc/mysql/my.cnf /etc/my.cnf
Now try and start the daemon.
+
Riavviate.
  
If you get these messages in your {{ic|/var/lib/mysql/hostname.err}}
+
Se leggete questi messaggi in {{ic|/var/lib/mysql/hostname.err}}:
 
   [ERROR] Can't start server : Bind on unix socket: Permission denied
 
   [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] Do you already have another mysqld server running on socket: /var/run/mysqld/mysqld.sock ?
 
   [ERROR] Aborting
 
   [ERROR] Aborting
The permissions of {{ic|/var/run/mysqld}} could be the culprit.
+
{{ic|/var/run/mysqld}} potrebbe avere i permessi sbagliati:
 
   # chown mysql:mysql /var/run/mysqld -R
 
   # chown mysql:mysql /var/run/mysqld -R
  
If you run mysqld and the following error appears:
+
Se '''mysqld''' mostra i seguenti errori:
  Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist
+
Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist
Run the following command from the /usr directory to install the default tables:
+
Eseguite il comando per installare le tavole predefinite da {{ic|/usr}}:
  # cd /usr
+
# cd /usr
  # mysql_install_db --user=mysql --ldata=/var/lib/mysql/
+
# mysql_install_db --user=mysql --ldata=/var/lib/mysql/
  
=== Unable to run mysql_upgrade because MySQL cannot start ===
+
=== Impossibile eseguire mysql_upgrade perchè MySQL non parte ===
  
Try run MySQL in safemode:
+
Provare in modalità di ripristino:
 
  # mysqld_safe --datadir=/var/lib/mysql/
 
  # mysqld_safe --datadir=/var/lib/mysql/
And then run:
+
Eseguire:
 
  # mysql_upgrade -u root -p
 
  # mysql_upgrade -u root -p
  
=== Reset the root password ===
+
=== Resettare la password di amministratore ===
  
Stop the ''mysqld'' [[daemon]]. Issue the following command:
+
Interrompere il servizio ''mysqld''. Eseguire questo comando:
 
  # mysqld_safe --skip-grant-tables &
 
  # mysqld_safe --skip-grant-tables &
Connect to the mysql server. Issue the following command:
+
Connettersi al server MySQL. Eseguire:
 
  # mysql -u root mysql
 
  # mysql -u root mysql
Change root password:
+
Cambiare la password di amministratore:
 
   mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
 
   mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
 
   mysql> FLUSH PRIVILEGES;
 
   mysql> FLUSH PRIVILEGES;
 
   mysql> exit
 
   mysql> exit
Start the ''mysqld'' daemon.
+
Riavviare il servizio ''mysqld''.
  
== See also ==
+
== Altre risorse ==
  
* [[LAMP]] - Arch wiki article covering the setup of a LAMP server (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/ - Community-driven implementation
+
* http://mariadb.org/ - Implementazione comunitaria
* http://www.mysql.com/ - Oracle implementation
+
* http://www.mysql.com/ - Implementazione di Oracle
* http://www.percona.com/software - Percona implementation
+
* http://www.percona.com/software - Implementazione di Percona
 
+
 
+
-----------------
+
{{Out of date| Seguire le indicazioni della versione inglese}}
+
[[Category:Database management systems (Italiano)]]
+
[[cs:MySQL]]
+
[[de:MySQL]]
+
[[en:MySQL]]
+
[[es:MySQL]]
+
[[fr:MySQL]]
+
[[sr:MySQL]]
+
[[tr:MySQL]]
+
[[zh-CN:MySQL]]
+
MySQL è un database SQL, ampiamente diffuso, multi-threaded e multi-utente. Per informazioni sul prodotto, andare alla [http://www.mysql.com/ pagina ufficiale].
+
 
+
==Installazione==
+
[[pacman (Italiano)|Installare]] il pacchetto {{Pkg|mysql}} dai [[Official Repositories (Italiano)|repository ufficiali]].
+
 
+
Poi si lanci lo script di avvio da root:
+
# /etc/rc.d/mysqld start && mysql_secure_installation
+
 
+
Poi si riavvii MySQL:
+
# /etc/rc.d/mysqld restart
+
 
+
Per avviare MySQL automaticamente al boot, modificare {{ic|/etc/rc.conf}} e aggiungere il demone {{ic|mysqld}}:
+
DAEMONS=(... mysqld ...)
+
 
+
Se si usa systemd, aggungere questi due file.
+
{{hc|/lib/systemd/system/mysqld.service|<nowiki>
+
[Unit]
+
Description=MySQL Server
+
After=network.target
+
 
+
[Service]
+
Type=simple
+
ExecStart=/usr/bin/mysqld --user=mysql --pid-file=/var/run/mysqld/mysqld.pid
+
ExecStop=/bin/kill -15 $MAINPID
+
PIDFile=/var/run/mysqld/mysqld.pid
+
Restart=always
+
 
+
[Install]
+
WantedBy=multi-user.target
+
</nowiki>}}
+
 
+
{{hc|/etc/tmpfiles.d/mysqld.conf|<nowiki>
+
# systemd tmpfile settings for mysql
+
# See tmpfiles.d(5) for details
+
 
+
d /var/run/mysqld 0755 mysql mysql -
+
</nowiki>}}
+
 
+
Avviare il server MySQL:
+
# systemctl start mysqld.service
+
 
+
Per far partire automaticamente MySQL all'avvio
+
# systemctl enable mysqld.service
+
Questo effettuerà le configurazioni di base come aggiungere al sistema gli utenti necessari e i file di log. Questo script vi indicherà inoltre come configurare MySQL dopo il primo avvio.
+
 
+
==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
+
 
+
Per lanciare MySQL al boot aggiungete {{ic|mysqld}} alla lista dei demoni nel file {{ic|/etc/rc.conf}}.
+
 
+
=== Abilitare l'accesso remoto ===
+
Il server MySQL non sta in "ascolto" sulla porta TCP 3306 di default. Per abilitare le connessioni remote via TCP, commentate la linea seguente nel file {{ic|/etc/mysql/my.cnf}}:
+
skip-networking
+
 
+
== Aggiornare ==
+
Si potrebbe considerare l'uso di questo comando dopo l'aggiornamento e l'avvio di MySQL:
+
# mysql_upgrade -u root -p
+
 
+
== Avviare istanze multiple (MySQL 4 e MySQL 5)==
+
MySQL4:
+
Si possono ottenere i binari MySQL da [http://dev.mysql.com/downloads/mysql/4.1.html#downloads qui]
+
È meglio installarli in:
+
/usr/local/mysql
+
Copiare lo script di avvio in:
+
/etc/rc.d
+
come scritto nel README:
+
#cp  /usr/local/mysql/support-files/mysql.server /etc/rc.d/mysqld4
+
Nello script di avvio può essere di aiuto impostare esplicitamente
+
Basedir=/usr/local/mysql
+
pid_file=/usr/local/var/run/mysql/mysql4.pid
+
(assicurarsi che le cartelle di riferimento vengano create con i permessi adatti)
+
 
+
Copiare la propria scelta del file config:
+
#cp /usr/local/mysql/support-files/my-medium.cnf /usr/local/mysql/data/my.cnf
+
 
+
Nel file config impostare il file di socket e la porta TCP/IP:
+
[client]
+
port            = 3307
+
socket          = /usr/local/var/run/mysql/mysql4.sock
+
 
+
[mysqld]
+
port            = 3307
+
socket          = /usr/local/var/run/mysqld/mysql4.sock
+
 
+
MySQL5:
+
Lo script di avvio di default in:
+
/etc/rc.d/mysqld
+
non tratta istanze multiple di mysql.
+
 
+
Modificare il file. Trovare questa riga:
+
getPID() {
+
  echo $(pgrep -u mysql mysqld 2>/dev/null);
+
}
+
 
+
E rimpiazzarla con:
+
getPID() {
+
  echo $(pgrep -u mysql -f /usr/bin/mysqld 2>/dev/null);
+
}
+
 
+
Avviare i servizi:
+
/etc/rc.d/mysqld start
+
/etc/rc.d/mysqld4 start
+
 
+
In modo facoltativo, avviare i servizi automaticamente aggiungendo (in {{ic|/etc/rc.conf}}):
+
DAEMONS=(... mysqld4 mysqld)
+
 
+
== Risoluzione dei problemi ==
+
===mysqld start && mysql_secure_installation restituisce degli errori se lanciato da root===
+
Se si vede qualcosa del genere:
+
 
+
[ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
+
[ERROR] Aborting
+
[Note] mysqld: Shutdown complete
+
 
+
probabilmente si ci si è dimenticati di usare {{ic|./}} all'inizio del comando se si è in {{ic|/etc/rc.d}}, o non so si sta usando il percorso completo.
+
 
+
=== Il demone MySQL non riesce a partire ===
+
Se si nota qualcosa di questo genere:
+
  # /etc/rc.d/mysqld restart
+
  :: Stopping MySQL  [FAIL]
+
  :: Starting MySQL  [FAIL]
+
e nessuna voce nei file di registro, bisognerebbe controllare i permessi dei file nelle cartelle {{ic|/var/lib/mysql}} e {{ic|/var/lib/mysql/mysql}}. Se il proprietario dei file in questa cartella non è {{ic|mysql:mysql}}, bisogna dare i seguenti comandi:
+
  # chown mysql:mysql /var/lib/mysql -R
+
Se si incorre in problemi di permessi nonostante aver eseguito questi, assicurarsi che il proprio {{ic|my.cnf}} sia copiato in {{ic|/etc/}}:
+
  # cp /etc/mysql/my.cnf /etc/my.cnf
+
Ora riprovare e riavviare il demone.
+
 
+
Se vengono ricevuti questi messaggi nel proprio {{ic|/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
+
Si dovrebbero cambiare i permessi di {{ic|/var/run/mysqld}} più o meno in questo modo:
+
  # chown mysql:mysql /var/run/mysqld -R
+
Se si esegue mysqlde appare il seguente errore:
+
  Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist
+
Eseguire il comando seguente per installare le tabelle di default:
+
  # mysql_install_db --user=mysql --ldata=/var/lib/mysql/
+
 
+
=== Impossibile eseguire mysql_upgrade perché MySQL non riesce a partire ===
+
Provare ad eseguire MySQL in modalità di ripristino:
+
# mysqld_safe --datadir=/var/lib/mysql/
+
E poi eseguire:
+
# mysql_upgrade -u root -p
+
 
+
=== Come resettare la password di Root ===
+
Fermare il demone mysqld:
+
# /etc/rc.d/mysqld stop
+
# mysqld_safe --skip-grant-tables &
+
Connettersi al server mysql:
+
# mysql -u root mysql
+
Cambiare la password di root:
+
  mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
+
  mysql> FLUSH PRIVILEGES;
+
  mysql> exit
+
Poi riavviare il demone:
+
# /etc/rc.d/mysqld restart
+
Fatto!
+
 
+
== Altre risorse ==
+
* [[LAMP (Italiano)]] - Articolo del nostro wiki che tratta il setup di un server LAMP (Linux Apache MySQL PHP)
+
* http://www.mysql.com/
+
* Front-end {{AUR|mysql-gui-tools}} {{AUR|mysql-workbench}}
+

Revision as of 17:27, 23 February 2014

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