Tag Archives: MySQL

Gestione backup per MySQL con MySQLDumper

Pubblicato da

Gestione backup per MySQL con MySQLDumper

Gestione backup per MySQL con MySQLDumper

MySQLDumper è una completa utility che permette la gestione dei backup MySQL.

Questo programma è utilissimo anche nel caso in cui, per esempio, è necessario importare una gran mole di dati tramite file .sql .
Grazie a istruzioni javascript evita il timeout dello script e le limitazioni di grandezza (normalmente intorno ai 2MB) imposte da tool come phpMyAdmin al file da importare.

Con MySQLDumper è possibile importare file fino al limite massimo imposto dall’opzione upload_max_filesize di php.ini. Per file di dimensioni superiori è sempre possibile inviare via FTP il file nella cartella /work/backup/ , il programma leggerà la presenza del nuovo file di backup e lo renderà disponibile per l’importazione.

Altre caratteristiche interessanti sono la possibilità di

  • inviare i backup a tre differenti server via FTP
  • impostare cronjob (necessario supporto Perl)
  • inviare i backup via email
  • suddividere un grande backup in più parti (saranno sempre riconosciuti come un unico backup)
  • cancellare automaticamente vecchi backup

Di non secondaria importanza è la facilità d’installazione del programma. In pratica basta uploadarlo in una cartella del server e modificare il file di configurazione. Si può lavorare su un solo database o su tutti quelli presenti sul server. Il programma funziona anche da SQL-Browser. Per quest’ultima funzione si deve dire che non può essere un sostituto di phpMyAdmin ma, lavorandogli a fianco, permettono di avere il pieno controllo sul database MySQL e su tutte le operazioni di sicurezza necessarie.

Link: MySQLDumper

Amministrare con Access in locale un MySQL remoto tramite SSH Tunneling

Pubblicato da

Amministrare con Access in locale un MySQL remoto tramite SSH Tunneling

Amministrare con Access in locale un MySQL remoto tramite SSH Tunneling

Ci sono molte aziende che hanno enormi difficoltà a cambiare il loro modo di lavorare.
Se un impiegato ha imparato a lavorare con Microsoft Access, la dirigenza spesso preferisce far ruotare tutto su questo punto fermo, piuttosto che costringere ad un corso di formazione.
Mettiamo che si voglia quindi gestire tutto o parte di database online MySQL tramite la nota interfaccia di Access in locale.
Il problema più grande è che MySQL viene sempre configurato in modo da non accettare connessioni da remoto ma solo da localhost (o al massimo da un IP trusted).
Soluzione: abbiamo bisogno di fare SSH tunneling

  • scarichiamo Putty e Plink dal sito di Putty e mettiamoli entrambi in una stessa cartella
  • apriamo una shell di comando (per Windows 7 basta scrivere “cmd” e  fare invio nella casellina di ricerca del menù)
  • navighiamo fino alla cartella dove abbiamo messo i programmi e diamo questo comando
    plink -L 3307:localhost:3306 username@miodominio.it
    3307 è la porta locale cui ci connetteremo
    3306 è la porta remota di MySQL (raramente viene utilizzata un’altra porta)
    username è l’utente SSH
    miodominio.it identifica il server dove gira MySQL (può essere un dominio o un IP)
  • si avvierà una finestra terminale da Putty in cui ci viene chiesta la password (se tutto ok, un suono ci avvertirà dell’avvenuta creazione del tunnel)

Per collegare Access tramite il tunnel SSH (ho lavorato su un Access in inglese ma credo si capiscano i comandi)

  • se non lo si è già fatto scaricare e installare i driver Connector/ODBC (attenzione nella scelta tra 32 e 64 bit)
  • aprire Access e creare un nuovo db (è possibile usare anche un db già creato)
  • clic su File -> Get External Data -> Link Tables
  • nella scelta del tipo di link scegliere ODBC Databases ()
  • si aprirà una finestra, cliccare sul tab Machine Data Source e poi su New
  • si aprirà una nuova finestra, questa volta del Connector/ODBC
    1. immettiamo un nome qualsiasi per Data Source Name
    2. nella casella Server mettiamo il dominio o l’IP
    3. lasciamo vuota la casella di MySQL database name
    4. in User e Password immettiamo quelle di root
    5. Cliccando su Test il menù a discesa Database si popolerà dei db raggiungibili
    6. Scegliamo il db da collegare e clicchiamo OK
    7. A questo punto possiamo scegliere se importare tutte o solo alcune delle tabelle MySQL remote

Nota Bene: ho lavorato usando la versione XP di Microsoft Access. Non credo che le versioni successive siano troppo diverse.

Alternativa a PhpMyAdmin

Pubblicato da

Alternativa a PhpMyAdmin

SQL Buddy è un’alernativa concreta a PhpMyAdmin.
Come PMA anche SQL Buddy è un gestore online di database MySQL, le differenze si riducono ad un’interfaccia più gradevole, ad un minor set di funzioni e, conseguentemente, ad un peso minore del pacchetto di file.
In più, SQL Buddy non ha installazione! Basta scompattare lo zip che si scarica dal sito ufficiale, metterlo sul server e, dopo un paio di doverose configurazioni via interfaccia, si può già lavorare.
L’unica nota stonata riguarda l’esportazione che può essere effettuata solo sotto forma di file txt.

NOTA BENE: a giudicare dal sito, SQL Buddy sembra un progetto abbandonato ma lo sviluppatore si è ripromesso di rilasciare solo una major release ogni anno. Siamo quindi in vista della 2.0

Link: SQL Buddy

Aggiornare PHP su CentOS

Pubblicato da

Aggiornare PHP su CentOS

Aggiornare PHP su CentOS

L’aggiornamento di WordPress alla versione 3.2.1 richiedeva un upgrade di PHP alla versione 5.2.4 o superiore del mio server con CentOS.
Così ho proceduto (dopo un adeguato backup dell’intero sistema) installando yum e aggiornando partendo dalle dipendenze (MySQL).

Installo yum

wget  http://www.atomicorp.com/installers/atomic.sh
sh atomic.sh

Aggiorno MySQL

yum update mysql
mv /etc/my.cnf.rpmnew /etc/my.cnf
service mysqld restart

Dopo questa operazione anche PHP è aggiornato alla versione più recente.
Tuttavia il servizio mysqld non ne voleva sapere di riavviarsi.
Dopo aver googlato un po’ ho capito che la dipendenza bdb non è più necessaria in /etc/my.cnf (il file di configurazione).
Per cui ho commentato la riga di comando che lo riguardava.


[mysqld]
set-variable=local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

#skip-bdb

set-variable = innodb_buffer_pool_size=2M
set-variable = innodb_additional_mem_pool_size=500K
set-variable = innodb_log_buffer_size=500K
set-variable = innodb_thread_concurrency=2
[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
skip-bdb


set-variable = innodb_buffer_pool_size=2M
set-variable = innodb_additional_mem_pool_size=500K
set-variable = innodb_log_buffer_size=500K
set-variable = innodb_thread_concurrency=2

..ed ho potuto riavviare normalmente il demone MySQL.

Link: CentOS PHP MySQL

 

Gestione database da remoto con Database Browser

Pubblicato da

Gestione database da remoto con Database Browser

PhpMyAdmin è il mio strumento preferito per lavorare con MySQL.
Capita talvolta che questa risorsa non sia nè presente nè sia possibile installarla. In questi casi conviene avere un programma che si connetta da remoto al database e permetta visualizzazioni e modifiche.

Un programma gratuito che può assolvere a queste funzioni è Database Browser.
Le sue caratteristiche:

  • Lavora direttamente con Oracle, MS Sql Server, ODBC, MySql, PostgreSQL, Interbase e Firebird
  • Supporta gli script di connessione ODBC
  • Nessun limite di connessioni contemporanee
  • Un click per passare da una connessione ad un’altra
  • Navigazione della tabella semplificata
  • Navigazione fra i dati
  • Esportazione in CSV, Excel, Html
  • Storico dei comandi
  • Sql Builder

Di questo tool ne esiste anche una comoda versione portatile

N.B. prima di scaricarlo e provarlo accertatevi che il vostro provider accetti le connessioni al db da remoto

Link: Database Browser

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