MySQL è un popolare sistema di gestione di database utilizzato per applicazioni Web e server. Questa guida introdurrà come installare, configurare e gestire MySQL su un Linode con Ubuntu 12.04 LTS (Precise Pangolin).
Nota Questa guida è scritta per un utente non root. I comandi che richiedono privilegi elevati sono preceduti dasudo
. Se non hai familiarità consudo
comando, puoi consultare la nostra guida Utenti e Gruppi.
Prerequisiti
-
Se non l'hai già fatto, crea un account Linode e un'istanza di calcolo. Consulta le nostre guide Introduzione a Linode e Creazione di un'istanza di calcolo.
-
Segui la nostra guida alla configurazione e alla protezione di un'istanza di calcolo per aggiornare il sistema e configurare il nome host. Potresti anche voler impostare il fuso orario, creare un account utente limitato e rafforzare l'accesso SSH.
Per controllare il tuo nome host esegui:
hostname hostname -f
Il primo comando dovrebbe mostrare il tuo nome host breve e il secondo dovrebbe mostrare il tuo nome di dominio completo (FQDN) se ne hai uno assegnato.
Installa MySQL
sudo apt-get install mysql-server
Durante il processo di installazione, ti verrà chiesto di impostare una password per l'utente root MySQL come mostrato di seguito. Scegli una password complessa e conservala in un luogo sicuro per riferimenti futuri.
MySQL si legherà a localhost (127.0.0.1) per impostazione predefinita. Fare riferimento alla nostra guida all'accesso remoto MySQL per informazioni sulla connessione ai database utilizzando un tunnel SSH.
Nota Non è consigliabile consentire l'accesso illimitato a MySQL su un IP pubblico, ma è possibile modificare l'indirizzo su cui è in ascolto modificando ilbind-address
parametro in/etc/my.cnf
. Se decidi di associare MySQL al tuo IP pubblico, dovresti implementare regole firewall che consentano solo connessioni da indirizzi IP specifici.
Indurire il server MySQL
Esegui lo script mysql_secure_installation per risolvere diversi problemi di sicurezza in un'installazione MySQL predefinita.
sudo mysql_secure_installation
Ti verrà data la possibilità di modificare la password di root MySQL, rimuovere account utente anonimi, disabilitare l'accesso al database root al di fuori di localhost e rimuovere i database di test. Si consiglia di rispondere sì a queste opzioni. Puoi leggere di più sullo script nel Manuale di riferimento di MySQL.
Distribuisci MySQL
Lo strumento standard per interagire con MySQL è mysql
client, che si installa con il mysql-server
pacchetto.
Accesso root
-
Per accedere a MySQL come utente root:
mysql -u root -p
-
Quando richiesto, inserisci la password di root assegnata durante
mysql_secure_installation
lo script è stato eseguito.Ti verrà quindi presentato il prompt del monitor MySQL:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.0.45 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
-
Per generare un elenco di comandi per il prompt di MySQL, inserisci
\h
. Vedrai quindi:List of all MySQL commands: Note that all text commands must be first on line and end with ';' ? (\?) Synonym for `help'. clear (\c) Clear command. connect (\r) Reconnect to the server. Optional arguments are db and host. delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter. edit (\e) Edit command with $EDITOR. ego (\G) Send command to mysql server, display result vertically. exit (\q) Exit mysql. Same as quit. go (\g) Send command to mysql server. help (\h) Display this help. nopager (\n) Disable pager, print to stdout. notee (\t) Don't write into outfile. pager (\P) Set PAGER [to_pager]. Print the query results via PAGER. print (\p) Print current command. prompt (\R) Change your mysql prompt. quit (\q) Quit mysql. rehash (\#) Rebuild completion hash. source (\.) Execute an SQL script file. Takes a file name as an argument. status (\s) Get status information from the server. system (\!) Execute a system shell command. tee (\T) Set outfile [to_outfile]. Append everything into given outfile. use (\u) Use another database. Takes database name as argument. charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets. warnings (\W) Show warnings after every statement. nowarning (\w) Don't show warnings after every statement. For server side help, type 'help contents' mysql>
Crea un nuovo utente e database MySQL
-
Nell'esempio seguente,
testdb
è il nome del database,testuser
è l'utente epassword
è la password dell'utente.create database testdb; create user 'testuser'@localhost identified by 'password'; grant all on testdb.* to 'testuser';
Puoi abbreviare questo processo creando l'utente mentre assegnazione delle autorizzazioni al database:
create database testdb; grant all on testdb.* to 'testuser' identified by 'password';
-
Esci da MySQL.
exit
Crea una tabella di esempio
-
Accedi nuovamente come
testuser
.mysql -u testuser -p
-
Crea una tabella di esempio chiamata
customers
. Questo crea una tabella con un campo ID cliente del tipoINT
per intero (autoincrementato per i nuovi record, utilizzato come chiave primaria), oltre a due campi per la memorizzazione del nome del cliente.use testdb; create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
-
Quindi esci da MySQL.
exit
Reimposta la password di root MySQL
Se dimentichi la tua password MySQL di root, può essere reimpostata.
-
Arresta l'istanza del server MySQL corrente.
sudo service mysql stop
-
Usa dpkg per rieseguire il processo di configurazione che MySQL esegue alla prima installazione. Ti verrà nuovamente chiesto di impostare una password di root.
sudo dpkg-reconfigure mysql-server-5.5
Ora potrai accedere di nuovo usando mysql -u root -p
.
Ottimizza MySQL
MySQL Tuner è uno script Perl che si connette a un'istanza in esecuzione di MySQL e fornisce consigli di configurazione basati sul carico di lavoro. Idealmente, l'istanza MySQL avrebbe dovuto funzionare da almeno 24 ore prima di eseguire il sintonizzatore. I consigli di MySQL Tuner saranno tanto più precisi quanto più a lungo sarà in esecuzione l'istanza.
-
Installa MySQL Tuner dai repository di Ubuntu.
sudo apt-get install mysqltuner
-
Per eseguirlo:
mysqltuner
Ti verrà chiesto il nome e la password dell'utente root MySQL. L'output mostrerà due aree di interesse:Raccomandazioni generali e Variabili da regolare.
MySQL Tuner è un ottimo punto di partenza per ottimizzare un server MySQL, ma si consiglia di effettuare ulteriori ricerche per configurazioni su misura per le applicazioni che utilizzano MySQL sul Linode.
Maggiori informazioni
Si consiglia di consultare le seguenti risorse per ulteriori informazioni su questo argomento. Sebbene questi siano forniti nella speranza che possano essere utili, tieni presente che non possiamo garantire l'accuratezza o la tempestività dei materiali ospitati esternamente.
- Manuale di riferimento di MySQL 5.1
- Manuale PHP MySQL
- Esempi DBI Perl per DBD::mysql
- Manuale utente di MySQLdb