Archivio

Posts Tagged ‘mysql’

Abilitare connessioni remote su mysql

12 febbraio 2010

Può capitare a volte che sia necessario connettersi a da remoto, pensiamo ad esempio a un sistema in cui il webserver e il server risiedano su due macchine differenti.

Dobbiamo quindi permettere al webserver di connettersi in remoto (o anche all’interno della stessa LAN), al server di , per far questo dobbiamo editare il file my.cnf di .

Il sistema che ho utilizzato è ubuntu server 8.04. Ipotizziamo di dover abilitare le connessioni per il nostro server, la macchina che hosta il servizio di avrà indirizzo ip 172.16.46.251.

Editiamo il file

nano /etc//my.cnf

a questo punto cerchiamo la riga contentente

bind-address            = 127.0.0.1

e sostiuiamola con

bind-address            = 172.16.46.251

ed il gioco è fatto, non abbiamo fatto altro che cambiare il bind del servizio in modo che si mettesse in ascolto sull’ip pubblico invece che solo sul localhost.

Ricordate che dovete anche modificare i permessi di accesso sui database, in quanto sui database già creati l’accesso è consentito solamente da 127.0.0.1.

Se per ipotesi volete permettere connessioni remote dall’ip 172.16.46.250 sul database ‘’ con l’utente root, dovrete eseguire i seguenti comandi

root@localhost # 

> use ;

> update db set Host='172.16.46.250' where Db='';

> update user set Host='172.16.46.250' where user='root';

> flush privileges;

Ora dovreste potervi connettere in remoto da , vi ricordo inoltre che se volete usare dovrete ricordarvi di modificare l’indirizzo ip del server direttametne dal file di , cambiando quindi l’ip anche li da 127.0.0.1 all’ip che vi interessa, nello specifico del nostro esempio 172.16.46.251.

Share

Tips Linux e Microsoft

Mysql

19 maggio 2009

MySQL è probabilmente tra i più popolari database open source (stando al motto che campeggia sul sito “The world’s most popular open source database“, IL più popolare in assoluto). Certo è che, insieme a PostgreSQL, è tra i più quotati database a codice libero, in grado di trovare un impiego anche in ambiti aziendali (dove la gestione di milioni di records è richiesta) e di rubare fette di mercato ai più blasonati cugini (Oracle, SQL Server, ecc.). MySQL presenta la maggior parte delle caratteristiche che ci si aspetterebbe da un database professionale ma il presente post focalizza l’attenzione sull’installazione su un singolo pc, più che altro per scopi amatoriali o per testing. Non si fa menzione quindi di cluster, backup, ecc. ma una esauriente documentazione è disponibile sul sito (http://www.mysql.com/) assieme ad una versione enterprise (non più gratis in questo caso).

Dato che MySQL server è disponibile attraverso i repository ufficiali, possiamo facilmente installare i pacchetti che ci servono attraverso Synaptic (System -> Administration -> Synaptic Manager).

Click su “search” e cerchiamo per nome “mysql”. Ovviamente è sempre possibile l’alternativa da terminale:

sudo apt-get check mysql-server

sudo apt-get install mysql-server  (per installarlo)

Essenzialmente abbiamo bisogno del mysql-server package e delle sue dipendenze e con questa operazione, di fatto, installiamo MySQL. L’installazione dovrebbe avviare automaticamente il server, potete controllare con un:

ps -ef | grep mysql

da terminale e verificare che vi sia mysqld tra i processi attivi. Dal output vedrete anche la porta su cui il server è in ascolto (di default è la 3306).
A questo punto si aprono due alternative: fermarsi qua e gestire MySQL attraverso la riga di comando oppure installare le comode interfacce grafiche (GUI) per fare il lavoro sporco in maniera più amichevole.
Per chi sceglie la prima strada occorre avviare il server (ma dovrebbe già essere stato avviato come dicevo)

sudo /etc/init.d/mysql start

Buona cosa cambiare la password dell’utente root (di MySQL non del sistema)

mysqladmin -u root password *vostra-password*

mysql -u root -p

poi non rimane altro che loggarsi con la nuova password che vi verrà richiesta. Per la documentazione fare riferimento qui e alle pagine man dei comandi.

Dato che mi piacciono le cose comode, spendo qualche parola in più sull’alternativa grafica. Esistono due utili strumenti che possiamo installare per amministrare il nostro MySQL server attraverso una comoda interfaccia grafica: MySQL Administrator (per compiti di amministrazione) e MySQL Query Browser (per le operazioni su DB: select, update, insert, ecc.). Per entrambi è disponibile una guida in italiano qui.
Per installere questi due utili tools al solito si può procedere tramite terminale:

sudo apt-get check mysql-admin

sudo apt-get check mysql-query-browser

oppure tramite Synaptic. Una volta installati saranno disponibili nel menù Applicazioni (Applications -> Programming). Avviamo MySQL Administrator:

MySQL Administrator

Inizialmente l’utente root non ha nessuna password quindi il campo va lasciato vuoto. La porta è quella di default (3306). Ci sono già due DB presenti (vedi voce “Catalogs”) ma sono di sistema e non vanno toccati. Per iniziare a smanettare consiglio di seguire i seguenti passi:

  1. Selezionare “User Administration” poi “root” nello spazio in basso a sinistra e assegnate una password di vostra scelta all’utente (che va ovviamente memorizzata)
  2. Cliccare su “New User” nella stessa finestra e create uno user a vostro piacere.
  3. Cliccare su “Catalogs”. Nello spazio in basso a sinistra vedrete i database attualmente presenti sul server. Click con il tasto destro del mouse su uno dei DB nella lista e selezionate “Create Schema”.Create new schemaDate un nome al vostro nuovo DB (per es. test) e salvate le modifiche apportate.
  4. Selezionare di nuovo “User Administrator”. Selezionate lo user che avete creato al passo 2 nella lista in basso a sinistra e poi selezionate “Schema Privileges”. Selezionare il nuovo DB creato al passo precedente. Selezionare i privilegi che vogliamo assegnare al nostro user sul DB di prova (dato che è solo una prova potete selezionare tutte le voci). Click sulla freccetta per spostare i privilegi nella colonna “Assigned Privileges”.

Fatto questo lo user avrà la possibilità di operare liberamente sul DB che abbiamo creato, creando tabelle, definendo constraints ed eseguire query (previa una certa dimistichezza con SQL) utilizzando MySQL Query Browser (Applications -> Programming -> MySQL Query Browser)

MySQL Query Browser

dove “vostro-user” è il nome dello user creato al passo 2 e “vostro-db” è il nome del DB creato al passo 3.

Ultima nota da tenere presente. MySQL viene installato di default come servizio, vale a dire come programma che parte all’avvio del sistema. È probabile che sul vostro desktop questa configurazione non sia ottimale: se si tratta di un database di test che usate solo in locale potreste valutare di disabilitarlo come servizio ed evitare di avere la porta 3306 perennemente aperta in ascolto. Per disabilitare il servizio: menù System -> Administration -> Services togliete il flag alla voce relativa a MySQL e chiudete la finestra. Il servizio verrà chiuso immediatamente e rimmarrà chiuso anche ai successivi riavvii dovrete perciò avviare MySQL a mano ogni volta ne avrete necessità. Essendo un servizio, troverete lo script in:

/etc/init.d

per cui potete avviarlo da terminale con il comando:

sudo /etc/init.d/mysql start

e stopparlo con:

sudo /etc/init.d/mysql stop

In ogni momento potete verificare lo stato del server MySQL con i seguenti due comandi da terminale:

ps -ef | grep mysql

per controllare se MySQL è tra i processi attivi sul vostro pc oppure:

sudo netstat -tap | grep MySQL

per evidenziare le porte e connessioni aperte da MySQL (sempre che sia avviato).
Altre utili informazioni sono disponibili al seguente link:

http://help.ubuntu-it.org/7.04/ubuntu/serverguide/it/databases.html

Share

Tips Linux e Microsoft