1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238
|
MySQLTuner-perl
====
[![Stato della build - Master](https://travis-ci.org/major/MySQLTuner-perl.svg?branch=master)](https://travis-ci.org/major/MySQLTuner-perl)
[![Stato del progetto](http://opensource.box.com/badges/active.svg)](http://opensource.box.com/badges)
[![Stato del progetto](http://opensource.box.com/badges/maintenance.svg)](http://opensource.box.com/badges)
[![Tempo medio per la soluzione di problemi](http://isitmaintained.com/badge/resolution/major/MySQLTuner-perl.svg)](http://isitmaintained.com/project/major/MySQLTuner-perl "Average time to resolve an issue")
[![Percentuale di problemi non risolti](http://isitmaintained.com/badge/open/major/MySQLTuner-perl.svg)](http://isitmaintained.com/project/major/MySQLTuner-perl "Percentage of issues still open")
[![Licenza GPL](https://badges.frapsoft.com/os/gpl/gpl.png?v=103)](https://opensource.org/licenses/GPL-3.0/)
**MySQLTuner** è uno script Perl che permette di analizzare velocemente una installazione di MySQL, nonché di apportare modifiche per migliorare le prestazioni e la stabilità. In modo coinciso sono riportati lo stato attuale delle variabili di configurazione e i dati sullo stato del sistema, corredati da suggerimenti di base per il miglioramento delle prestazioni.
**MySQLTuner** supporta, in quest'ultima versione, circa 250 indicatori per i server MySQL/MariaDB/Percona.
**MySQLTuner** è attivamente manutenuto e nuovi indicatori sono aggiunti di settimana in settimana, supportando un gran numero di configurazioni tra le quali ![Galera Cluster](http://galeracluster.com/), ![TokuDB](https://www.percona.com/software/mysql-database/percona-tokudb), ![ Performance schema](https://github.com/mysql/mysql-sys), metriche relative al SO Linux, ![InnoDB](http://dev.mysql.com/doc/refman/5.7/en/innodb-storage-engine.html), ![MyISAM](http://dev.mysql.com/doc/refman/5.7/en/myisam-storage-engine.html), ![Aria](https://mariadb.com/kb/en/mariadb/aria/), ...
Maggiori dettagli sugli indicatori
![Indicators description](https://github.com/major/MySQLTuner-perl/blob/master/INTERNALS.md).
![MysqlTuner](https://github.com/major/MySQLTuner-perl/blob/master/mysqltuner.png)
MySQLTuner ha bisogno di te:
===
**MySQLTuner** ha bisogno di collaboratori per documentazione, codice e suggerimenti ..
* Problemi e suggerimenti possono essere riportati su [GitHub tracker](https://github.com/major/MySQLTuner-perl/issues).
* La guida per contribuire è disponibile in inglese: [MySQLTuner contributing guide](https://github.com/major/MySQLTuner-perl/blob/master/CONTRIBUTING.md)
* Dai un Stella a **MySQLTuner project** su [GitHub](https://github.com/major/MySQLTuner-perl)
Compatibilità:
====
* MySQL 5.7 (pieno supporto)
* MySQL 5.6 (pieno supporto)
* MySQL 5.5 (pieno supporto)
* MariaDB 10.1 (pieno supporto)
* MariaDB 10.0 (pieno supporto)
* Percona Server 5.6 (pieno supporto)
* Percona XtraDB cluster (pieno supporto)
* MySQL 3.23, 4.0, 4.1, 5.0, 5.1 (supporto parziale - versione deprecata)
* Perl 5.6 o successivi (col pacchetto [perl-doc](http://search.cpan.org/~dapm/perl-5.14.4/pod/perldoc.pod))
* Sistemi operativi basati su Unix/Linux (testato su Linux, varianti di BSD e di Solaris)
* Windows non è supportato al momento (gradito aiuto!!!!!)
* Accesso completo in lettura al server MySQL (accesso root a livello di SO raccomandato per MySQL < 5.1)
* supporto al rilevamento di vulnerabilità CVE da [https://cve.mitre.org](https://cve.mitre.org)
***ATTENZIONE***
--
È **estremamente importante** che tu capisca appieno ogni singola modifica apportata alla configurazione del server MySQL.
Qualora non capissi appieno qualche parte dell'output dello script o se non capissi quanto raccomandato **dovresti consultare** un DBA esperto o un amministratore di sistema di cui hai fiducia.
Testa **sempre** le modifiche su ambienti ad hoc e tieni sempre presente che miglioramenti in un settore potrebbero **influenzare negativamente** MySQL in altri settori.
**Seriamente - consulta la sezione FAQ che segue.**
Cosa verifica esattamente MySQLTuner ?
--
Tutti i controlli effettuati da **MySQLTuner** sono documentati in [MySQLTuner Internals](https://github.com/major/MySQLTuner-perl/blob/master/INTERNALS.md).
Download/Installazione
--
Si può semplicemente scaricare l'intero codice utilizzando `git clone` seguito dalla URL riportata sopra.
Il modo più semplice è il seguente:
wget http://mysqltuner.pl/ -O mysqltuner.pl
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/basic_passwords.txt -O basic_passwords.txt
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/vulnerabilities.csv -O vulnerabilities.csv
perl mysqltuner.pl
Ovviamente è possibile assegnare il permesso di esecuzione in modo da poter lanciare il comando senza chiamare l'interprete `perl` (`chmod +x mysqltuner.pl`).
Casi d'uso
--
__Uso:__ Minimale locale
perl mysqltuner.pl
__Uso:__ Minimale da remoto
perl mysqltuner.pl --host targetDNS_IP --user admin_user --pass admin_password
__Uso:__ Abilitando il massimo livello di informazione in output su MySQL/MariaDb senza usare l'optione di debug
perl mysqltuner.pl --verbose
perl mysqltuner.pl --buffers --dbstat --idxstat --sysstat --pfstat
__Uso:__ Abilitando la verifica delle vulnerabilità CVE per la versione di MariaDB o MySQL installata
perl mysqltuner.pl --cvefile=vulnerabilities.csv
__Uso:__ Salvando i risultati su un file con le stesse informazione mostrate a video
perl mysqltuner.pl --outputfile /tmp/result_mysqltuner.txt
__Uso:__ Salvando i risultati su un file **senza mostrare nulla a video**
perl mysqltuner.pl --silent --outputfile /tmp/result_mysqltuner.txt
__Uso:__ Utilizzando un modello per personalizzare il file di output, con la sintassi di [Text::Template](https://metacpan.org/pod/Text::Template).
perl mysqltuner.pl --silent --reportfile /tmp/result_mysqltuner.txt --template=/tmp/mymodel.tmpl
__Uso:__ Abilitando la modalità di debug
perl mysqltuner.pl --debug
FAQ
--
**Domanda: MySQLTuner sistemerà il mio server MySQL lento?**
**No.** MySQLTuner è uno script che legge solamente. Non scriverà alcun file di configurazione, non modificherà lo stato di alcun demone né chiamerà tua madre per augurarle buon compleanno.
Ti darà una panoramica delle prestazioni del tuo server, facendo alcune raccomandazioni basilari circa i miglioramenti che tu puoi apportare. *assicurati di leggere l'avviso precedente prima di seguire qualsiasi raccomandazione.*
**Domanda: Posso eliminare il mio DBA ora?**
**MySQLTuner non sostituirà il tuo DBA in alcun modo.** Se il tuo DBA continuamente occupa il tuo parcheggio e ruba il tuo cibo dal frigo puoi considerare l'opzione - ma resta una tua scelta.
**Domanda: Perché MySQLTuner continua a chiedermi ogni volta le credenziali di login di MySQL?**
Lo script cerca di arguirle in ogni modo possibile. Cercando file `~/.my.cnf`, file di password di Plesk e provando il login di root con password vuota.
Se nessuno di questi modi ha successo, allora la password viene richiesta. Se preferisci che lo script giri in modo automatico, senza interazione con l'utente, allora crea un file `.my.cnf` nella tua cartella home che contenga:
[client]
user=someusername
pass=thatuserspassword
Una volta creato, assicurati che tu sia il proprietario (owner) e che i permessi siano 0600. Questo dovrebbe preservare le tue credenziali di login per i database da occhi indiscreti, in condizioni normali.
Se un [Terminator modello T-1000 apparisse vestito da Carabiniere](https://it.wikipedia.org/wiki/T-1000) e chiedesse le tue credenziali non avresti poi tante scelte.
**Domanda: C'è qualche altro modo per rendere sicure le credenziali sulle ultime versioni di MySQL e MariaDB ?**
Potresti utilizzare il comando `mysql_config_editor`.
$ mysql_config_editor set --login-path=client --user=someusername --password --host=localhost
Enter passord: ********
$
Che crea il file `~/.mylogin.cnf` con i prmessi di accesso appropriati.
Per avere informazioni sulle credenziali salvate, si usi ilseguente comando:
$mysql_config_editor print
[client]
user = someusername
password = *****
host = localhost
**Domanda: Quali sono i privilegi minimi, nel database, necessari per un utente *mysqltuner* ad hoc ?**
mysql>GRANT SELECT, PROCESS,EXECUTE, REPLICATION CLIENT,SHOW DATABASES,SHOW VIEW ON *.* FOR 'mysqltuner'@'localhost' identified by pwd1234;
**Domanda: Non funziona sul mio SO! Che succede?!**
Questo genere di cose sono destinate ad accadere. Ecco i dettagli di cui ho bisogno per indagare sul problema:
* SO e versione del SO
* Architettura (x86, x86_64, IA64, Commodore 64)
* Versione esatta di MySQL
* Da dove viene la tua versione di MySQL (pacchetto del SO, sorgenti, etc.)
* Il testo completo dell'errore
* L'output dei comandi `SHOW VARIABLES;` e `SHOW GLOBAL STATUS;`(se possibile)
**Domanda: Come eseguo il check per le vulnerabilità CVE ?**
* Scarica il file `vulnerabilities.csv`da questo repository.
* Usa l'opzione `--cvefile` per eseguire i test delle CVE
**Domanda: Come uso mysqltuner da un altro computer ?**
Grazie a [@rolandomysqldba](http://dba.stackexchange.com/users/877/rolandomysqldba)
* You will still have to connect like a mysql client:
* Ti dovrai collegare come un client mysql:
Connessione e Autenticazione
--host <hostname> Si connette a un host remoto per eseguire i test (default: localhost)
--socket <socket> Usa un socket per effettuare una connessione locale
--port <port> Porta per la connessione (default: 3306)
--user <username> Username per l'autenticazione
--pass <password> Password per l'autenticazione
--defaults-file <path> defaults file per le credenziali
Poiché si sta utilizzando un host remoto, si utilizzino i seguenti parametri per fornire allo script i valori del SO
--forcemem <size> Valore della RAM installata, in megabyte
--forceswap <size> Valore della memoria di swap configurata, in megabyte
* Potresti dover contattare il sistemista del server remoto per conoscere i valori di RAM e swap
Se il database ha troppe tabelle, o tabelle veramente grandi, si usi:
--skipsize Non elenca le tabelle ed i rispettivi tipi e dimensioni (default: on)
(Raccomandato per server con molte tabelle)
MySQLTuner e Vagrant
--
**MySQLTuner** contiene le seguenti configurazioni per Vagrant:
* Fedora Core 23 / MariaDB 10.0
* Fedora Core 23 / MariaDB 10.1
* Fedora Core 23 / MySQL 5.6
* Fedora Core 23 / MySQL 5.7
**Vagrant File** sono collocati nella sotto-directory di Vagrant.
* Segui questi due passaggi dopo l'installazione di Vagrant:
* Rinominare `VagrantFile_for_Mxxx` in `Vagrantfile`
* `vagrant up`
**MySQLTuner** contiene una configurazione Vagrant a scopo di test e sviluppo
* Installare VirtualBox e Vagrant
* https://www.virtualbox.org/wiki/Downloads
* https://www.vagrantup.com/downloads.html
* Clone del repository
* git clone https://github.com/major/MySQLTuner-perl.git
* Installare i plugin di Vagrant `vagrant-hostmanager` e `vagrant-vbguest`
* `vagrant plugin install vagrant-hostmanager`
* `vagrant plugin install vagrant-vbguest`
* Aggiungere un box Fedora Core 23 dal sito ufficiale di Fedora
* `vagrant box add --name fc23 https://download.fedoraproject.org/pub/fedora/linux/releases/23/Cloud/x86_64/Images/Fedora-Cloud-Base-Vagrant-23-20151030.x86_64.vagrant-virtualbox.box`
* Creare una directory `data`
* `mkdir data`
* Rinominare `Vagrantfile_MariaDB10.0` in `Vagrantfile`
* `cp MySQLTuner-perl/Vagrant/Vagrantfile_for_MariaDB10.0 Vagrantfile`
* Start vagrant
* `vagrant up`
MySQLTuner ha bisogno di te:
--
**MySQLTuner** ha bisogno di collaboratori per documentazione, codice e suggerimenti ..
* Problemi e suggerimenti possono essere riportati su [GitHub tracker](https://github.com/major/MySQLTuner-perl/issues).
* La guida per contribuire è disponibile in inglese: [MySQLTuner contributing guide](https://github.com/major/MySQLTuner-perl/blob/master/CONTRIBUTING.md)
* Dai un Stella a **MySQLTuner project** su [GitHub](https://github.com/major/MySQLTuner-perl)
|