Category Archives: Database

Gestire database SQLite direttamente da Firefox

Pubblicato da

Gestire database SQLite direttamente da Firefox

E’ molto tempo che dico che Firefox è diventato uno dei miei principali strumenti di lavoro.
Anche lo sviluppo di applicazioni web based passa per i componenti aggiuntivi di questo browser.
Sto usando da un po’ di tempo un manager di database SQLite che si carica come add-on di Firefox.
Ovviamente è molto essenziale ma permette di creare, gestire ed esportare basi di dati con estrema semplicità.

Trovo estremamente comodo testare le applicazioni tramite XAMPP visualizzandole in Firefox e controllare il database da questa estensione.

Link: SQLite Manager

MySQL illegale in Italia da Luglio 2009

Pubblicato da

Riporto con piacere l’appello di My B Side riguardo il problema della privacy riferito all’utilizzo di DBMS.

Il Garante ha scritto nelle sue FAQ che

19) La registrazione degli accessi è relativa al sistema operativo o anche ai DBMS?
Tra gli accessi logici a sistemi e archivi elettronici sono comprese le autenticazioni nei confronti dei
data base management systems (DBMS), che vanno registrate.
e
Le registrazioni (
access log) devono avere caratteristiche di completezza, inalterabilità e possibilità di verifica della loro integrità adeguate al raggiungimento dello scopo di verifica per cui sono richieste.

Questo significa, per chi ha un mysql server, che bisogna aggiungere a my.cnf
log = /var/log/mysql/mysql.log
Il problema qual è ? Il problema è che così facendo mysql logga tutto: connect, query, quit

Time Id Command Argument
090611 21:33:43 1 Connect debian-sys-maint@localhost on
1 Quit
2 Connect debian-sys-maint@localhost on
2 Quit
3 Connect debian-sys-maint@localhost on
3 Query show /*!40003 GLOBAL */ variables
3 Quit
4 Connect debian-sys-maint@localhost on mysql
4 Query select @@version_comment limit 1
4 Query show variables like ‘datadir’
4 Quit
5 Connect debian-sys-maint@localhost on
5 Query select @@version_comment limit 1
5 Query SELECT count(*) FROM mysql.user WHERE user=’root’ and password=’password’
5 Quit
6 Connect debian-sys-maint@localhost on
6 Query select @@version_comment limit 1
6 Query select concat(”select count(*) into @discard from `”,
TABLE_SCHEMA, “`.`”, TABLE_NAME, “`”)
from information_schema.TABLES where ENGINE=”MyISAM”

Ovviamente l’installazione di un semplice cms tipo joomla/drupal/wordpress implica una serie di query ben maggiori e quindi overhead diffusi, memoria sprecata, I/O ridotto, cpu più carica. Non parliamo poi del requisito relativo all’integrità dei log… mysql scrive su un file di testo quindi pure qui direi che non ci siamo.
Una grossa azienda non avrà problemi ma una piccola azienda, magari una start-up, dovrà farsi carico di questi COSTI maggiori e in generale i responsabili IT saranno responsabili penalmente di ciò.
Le soluzioni ?
1) Migrare verso altri prodotti con relativi costi e tempo sprecato.
2) Lasciare tutto così sperando di non esser beccati.
3) Usare qualche prodotto di terze parti che comunque non può coprire tutti i requisiti di questa legge.
4) Migrare il proprio portale verso un cms che utilizzi file di testo al posto di database tipo FlatNuke
..

Io vorrei tanto sapere chi è stato consultato per emanare questa norma e queste FAQ ma credo che non lo saprò mai per via della… privacy !

Non posso che appoggiare le perplessità di questo utilizzatore di DBMS di MySQL in particolare (il problema si pone a prescindere dal tipo di db).
E’ proprio vero che un certo garantismo arruffone non garantisce proprio nessuno.

Invito i colleghi informatici e gli utilizzatori a proporre soluzioni e iniziative.

Link: MySQL illegale in Italia da Luglio 2009

Resettare la password di MySQL

Pubblicato da

Resettare la password di MySQL

Dopo aver installato MySQL può capitare di smarrire o non ricordare più la password di root.
Ecco il metodo per resettarla, NON per recuperarla.
Per Windows e Linux.

WINDOWS

Accedi come amministratore sul server dove gira MySQL.
Spegni MySQL.
Se è un servizio lo trovi in Strumenti di amministrazione del Pannello di controllo
Se è un processo lo trovi in Task Manager (CTRL+ALT+DEL).

Scrivi un file di testo con Notepad o altro con queste istruzioni

UPDATE mysql.user SET Password=PASSWORD(”NuovaPassword”) WHERE User=’root’;
FLUSH PRIVILEGES;

Ovviamente “NuovaPassword” è la nuova password scelta per MySQL.
Salviamo il file come mysql.txt.

Apriamo una riga di comando (Start->Esegui->cmd) e scriviamo

C:\mysql\bin\mysqld-nt –init-file=C:\mysql.txt

La password è stata cambiata e il server MySQL può essere riavviato.

LINUX

Accedi come root al server.
Spegni MySQL

# /etc/init.d/mysql stop

Adesso riavviamo MySQL senza che vengano attivati i permessi

# mysqld_safe –skip-grant-tables &

Accediamo come root a MySQL (senza dover inserire la password)

# mysql -u root

Settiamo la nuova password di root

mysql> use mysql;
mysql> update user set password=PASSWORD(”NuovaPassword”) where User=’root’;
mysql> flush privileges;
mysql> quit

Riavviamo il server MySQL e accediamo con la nuova password

# /etc/init.d/mysql stop
# /etc/init.d/mysql start
# mysql -u root -p NuovaPassword

Link: How to reset the root password

Attivare il supporto a InnoDB su MySQL

Pubblicato da

Attivare il supporto a InnoDB su MySQL

Spesso MySQL viene installato settando come non attivo il supporto a InnoDB.
Se il proprio database è gestito da  un provider terzo, bisogna affidarsi al buon cuore di quest’ultimo (difficile che lo faccia).
Ma se siamo noi a poter mettere le mani sul server, per attivarlo basta seguire questi pochi passaggi

  1. Aprire il file delle opzioni MySQL, il file si chiama my.cnf (in Linux) – lo trovi in /etc/my.cnf – o my.ini (in Windows) – lo trovi in c:/windows/my.ini
  2. Trova l’istruzione skip-innodb e commentala aggiungendo # prima di essa
  3. E’ consigliato incrementare il valore max_allowed_packet per essere sicuri di poter uploadare file più grandi di 1 MB.
    Quindi subito sotto la linea appena commentata scriviamo:
    set-variable = max_allowed_packet=64M

Link: MySQL

Convertire database Access in MySQL (MdbToMySQL)

Pubblicato da

Convertire database Access in MySQL (MdbToMySQL)

Una piccola utility che fa il suo sporco lavoro: leggere lo schema di un database Access e creare un file .sql da dare in pasto ad un gestore di MySQL (come PhpMyAdmin).
A me è stata utilissima e rapida nel leggere tabelle e dati di un piccolo file mdb e convertire il tutto in istruzioni SQL che poi ho importato in MySQL per ricreare lo schema.
Senza molti fronzoli e opzioni.
Ovviamente l’utility si chiama MdbToMySQL

Link: MdbToMySQL

MySQL Connector (ODBC) per Windows 32bit

Pubblicato da

MySQL Connector (ODBC) per Windows 32bit

Ieri mi serviva urgentemente questo driver per collegare un’applicazione su server Windows ad una base dati MySQL ma ogni volta che scaricavo da un mirror della pagina download di MySQL il file eseguibile e cercavo d’installare, avevo questo problema:

Error 1335. The cabinet file “product.cab” is required for the installation is corrupt.

Ho provato differenti mirror ma tutti mi davano lo stesso risultato. Solo un’installazione è andata a buon fine ma, non ricordando da dove l’ho scaricata, metto qui il link (il driver è sul mio server) affinchè possa servire fino a quando non verrà risolto il problema.

Link: mysql-connector-odbc-3.51.16-win32.zip

Come connettersi ad un database MySQL da remoto?

Pubblicato da

Come connettersi ad un database MySQL da remoto?
Per motivi di sicurezza molti provider non permettono di connettersi direttamente dalle applicazioni desktop ai db MySQL remoti. In pratica viene negato l’accesso alla porta 3306 a ciò che proviene al di fuori della rete ‘conosciuta’.

Si può ovviare in due modi o usando un tunnel SSH o un file php che funga da tunnel (tunneling).
Descriverò la prima tecnica usando Putty e MySQL Administrator.
La prima azione è quella di aprire un tunnel SSH con Putty (si presuppone che il provider supporti SSH):

  • Avviamo Putty
  • Click su “Tunnels” nella colonna di sinistra
  • In “Source port”, scrivere “3306”
  • In “Destination”, scrivere “server name:3306” (per esempio: “www.sergiogandrus.it:3306”)
  • Click su “Add”
  • Nella colonna di sinistra, click su “Session”
  • In “Host Name”, scrivere il nome del server (per esempio: “www.sergiogandrus.it”
  • Assicurarsi che “SSH” sia selezionato e che il numero della porta sia “22”
  • In “Saved Sessions”, dare un nome alla sessione (per esempio: “mysql-tunnel”
  • Click su “Save” per salvare la sessione
  • Click su “Open” per iniziare la sessione
  • Putty aprirà una finestra DOS che ti permetterà di autenticarti nel server. Inserisci username/password e lascia la finestra aperta per tutta la sessione.

Dopo aver creato il tunnel SSH col server siamo pronti per collegare il MySQL Administrator:

  • Avvia MySQL Administrator
  • In “Server Host”, scrivi “localhost”
  • In “username”, scrivi il nome del tuo database
  • In “password”, scrivi la password del tuo database
  • Click su “OK” e poi dovresti essere dentro.

Apache, MySQL, PHP e Perl su una chiave USB

Pubblicato da

Apache, MySQL, PHP e Perl su una chiave USB
Spesso capita di voler testare/sviluppare applicazioni in PHP su macchine Windows ma non si ha il tempo o non c’è consentito di installare tutto l’ambiente.
XAMPP è la soluzione più rapida per avere rapidamente tutti componenti (OpenSSL, phpMyAdmin e FileZilla FTP Server compresi).
Da poco è disponibile la versione funzionante da drive esterno (anche una chiave USB), quindi senza installazione!
Due versioni.

Una full con:

  • Apache
  • MySQL
  • PHP + PEAR
  • MiniPerl
  • OpenSSL
  • phpMyAdmin
  • XAMPP Control Panel
  • Webalizer
  • Mercury Mail Transport System
  • FileZilla FTP Server
  • SQLite
  • ADODB
  • Zend Optimizer
  • XAMPP Security

Ed una light (o lite) con:

  • PHP + PEAR
  • MiniPerl
  • OpenSSL
  • XAMPP Control Panel
  • Webalizer
  • Mercury Mail Transport System
  • FileZilla FTP Server
  • Zend Optimizer
  • XAMPP Security

Per aiuto sul setup si può visitare la pagina XAMPP for Windows:

Oppure si può chiedere (in inglese) al forum Apache Friends Support Forum.

RevokeBB, forum in PHP e AJAX

Pubblicato da

RevokeBB, forum in PHP e AJAX
RevokeBB è uno script per bulletin boards.
Il progetto è stato creato in PHP 4 sfruttando la programmazione ad oggetti.
Lo script ha come punto di forza la velocita e la sicurezza realizzate tramite sql templating e un potente template engine basato su XSLT.
Il progetto è rilasciato sotto licenza GPL 2.0 e il suo sviluppo, testing e utilizzo è aperto a tutti.
La release corrente è la 1.0 Alpha B2.
Le features sono per ora basilari ma si può vedere l’attenzione dedicata ad AJAX.
In un breve futuro verrà aggiunto il pieno supporto a SQLite e postgresql.

Diamogli una mano per il debug!

A questo punto manca solo il link: http://www.revokesoft.net