MySQL è un popolare sistema di gestione di database, utilizzato come provider di archiviazione dati per migliaia di applicazioni Web e server. Questa guida aiuterà i principianti a iniziare con MySQL su un Linode Ubuntu 10.10 (Maverick). Si presume che tu abbia seguito i passaggi descritti nella nostra Configurazione e protezione di un'istanza di calcolo, che il tuo sistema sia aggiornato e che tu abbia effettuato l'accesso a Linode come root tramite SSH.
Configurazione di base del sistema
Modifica il tuo /etc/hosts
file per assomigliare al seguente esempio. Sostituisci "example.com" con il tuo nome di dominio e seleziona un nome univoco con cui sostituire "systemname". Questo sarà l'FQDN del tuo sistema (nome di dominio completo). Sostituisci "12.34.56.78" con l'indirizzo IP del tuo Linode.
- File:/ ecc/host
1 2
127.0.0.1 localhost.localdomain localhost 12.34.56.78 systemname.example.com systemname
Emetti i seguenti comandi per impostare il nome host del tuo sistema, sostituendo "systemname" con il nome host breve che hai scelto sopra.
echo "systemname" > /etc/hostname
hostname -F /etc/hostname
Installa MySQL
Assicurati che i repository dei pacchetti e i programmi installati siano aggiornati eseguendo i seguenti comandi:
apt-get update
apt-get upgrade --show-upgraded
Inizia emettendo il seguente comando nel tuo terminale:
apt-get install mysql-server
Ti verrà chiesto di impostare una password per l'utente root di MySQL. Scegli una password complessa e conservala in un luogo sicuro per riferimenti futuri.
Il pacchetto del server MySQL verrà installato sul tuo server, insieme alle dipendenze e alle librerie client. Dopo aver installato MySQL, si consiglia di eseguire mysql_secure_installation
per aiutare a proteggere MySQL. Si consiglia di accettare le risposte predefinite del programma. Se ti viene chiesto di ricaricare i privilegi, seleziona "sì". Eseguire il comando seguente per eseguire il programma:
mysql_secure_installation
Dopo aver eseguito mysql_secure_installation
, MySQL è sicuro e pronto per essere configurato.
Configura MySQL
Per impostazione predefinita, MySQL fa alcune ipotesi sull'ambiente del server rispetto alla memoria. Per configurare MySQL in modo più conservativo, dovrai modificare alcune impostazioni nel suo file di configurazione. Il tuo file dovrebbe essere simile al seguente:
- File:/ etc/mysql/my.cnf
1 2 3 4 5 6
key_buffer = 16M max_allowed_packet = 1M thread_stack = 64K table_cache = 4 sort_buffer = 64K net_buffer_length = 2K
Queste impostazioni sono solo valori suggeriti per un ambiente con poca memoria; sentiti libero di sintonizzarli su valori appropriati per il tuo server. Consulta la sezione "Ulteriori informazioni" alla fine di questo tutorial per ulteriori risorse su questo argomento.
Se hai apportato modifiche alla configurazione di MySQL, riavvialo eseguendo il seguente comando:
restart mysql
MySQL si legherà a localhost (127.0.0.1) per impostazione predefinita. Fare riferimento alla nostra guida all'accesso remoto MySQL sicuro per informazioni sulla connessione ai database con client locali.
Non è consigliabile consentire l'accesso illimitato a MySQL su un IP pubblico, ma è possibile modificare l'indirizzo su cui è in ascolto modificando bind-address
parametro. Se decidi di associare MySQL al tuo IP pubblico, dovresti implementare regole firewall che consentano solo connessioni da indirizzi IP specifici.
Utilizzo di MySQL
Lo strumento standard per interagire con MySQL è mysql
programma client. Per iniziare, emetti il seguente comando al tuo prompt:
mysql -u root -p
Ti verrà richiesto di inserire la password dell'utente MySQL root. Inserisci la password assegnata durante l'installazione di MySQL e ti verrà presentato il display del monitor MySQL:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 34
Server version: 5.1.49-1ubuntu8 (Ubuntu)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Se hai dimenticato la password di root, utilizza lo strumento di riconfigurazione del pacchetto per modificare la password:
dpkg-reconfigure mysql-server-5.1
Per generare un elenco di comandi per il prompt di MySQL, digitare \h
:
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear the current input statement.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement 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>
Creiamo un database e gli assegniamo un utente. Immettere i seguenti comandi al prompt di MySQL:
CREATE DATABASE testdb;
CREATE USER 'testuser'@localhost IDENTIFIED BY 'changeme';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@localhost;
exit
Ora accediamo nuovamente al client MySQL come testuser
e crea una tabella di esempio chiamata "clienti". Emetti i seguenti comandi:
mysql -u testuser -p
USE testdb;
CREATE TABLE customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
In questo modo viene creata una tabella con un campo ID cliente di tipo INT per intero (aumentato automaticamente per nuovi record e utilizzato come chiave primaria), nonché due campi per memorizzare il nome del cliente.
Per impostazione predefinita, l'accesso ai database sarà limitato alle connessioni da localhost. Per amministrare in sicurezza i tuoi database da una postazione remota, segui la nostra guida per amministrare in modo sicuro mysql con un tunnel SSH. non è una buona pratica eseguire MySQL sul tuo indirizzo IP pubblico, a meno che tu non abbia una buona ragione per farlo.
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