Archivio

Archive for the ‘mysql’ Category

WordPress password dimenticata

wordpress.org Se si è dimenticata la password di amministratore di wordpress e il servizio di posta non è disponibile, per  recuperare l’accesso e l’installazione è possibile:

1) accedere al file wp-config.php
2) generare una nuova password inserendola direttamente nel database mysql.

1 ) accedere al file wp-config.php nella directory principale di wordpress. Il file wp-config contiene le informazioni di accesso al database grazie alle quali è possibile accedere alla tabella  _users con i dati e le password degli utenti

// ** MySQL settings - You can get this info from your web host ** //
 /** The name of the database for WordPress */
 define('DB_NAME', 'wpblog');
/** MySQL database username */
 define('DB_USER', 'wpdbadmin');
/** MySQL database password */
 define('DB_PASSWORD', 'miapassword');
/** MySQL hostname */
 # define('DB_HOST', 'localhost');
 define('DB_HOST', '192.168.1.100:3306');

WordPress passwords basate sul php password hashing.

Le password in word press sono memorizzate nella tabella xx_users

wp_passwd_adminer_1

2) Se si dispone dell’accesso al database mysql via phpMyAdmin o Adminer è possibile recuperare l’accesso a wordpress sostituendo la vecchia password ( dimenticata ) con una nuova password. Per la “crittografia” delle password wordpress utilizza il Portable PHP password hashing framework  ( le prime versioni utilizzavano invece MD5 ).

Il formato di una password che utilizza il php password hashing è facilmente distinguibile dal formato MD5.

php password hashing:   $P$BEMeAQICR602UR9RGRYtzzGz9SNKVA.
MD5 :  551583c11e1e3c9d8e6aeea9a84fe143

La classe con l’algoritmo per la gestione delle password è contenuta nel file ./wp-includes/class-phpass.php. Quindi per generare ad esempio la password di “MyPassword” è sufficiente disporre del file class-phpass.php e includerlo ad esempio nel file passwd_wp.php contenente uno script del tipo:

<!–?php

/** We want to hash password using the current DEFAULT algorithm. */
require(‘./class-phpass.php’);

/** Simple  instruction to generate password and/or to check password. */
$wp_hasher = new PasswordHash( 8, TRUE );
$password = ‘MyPassword‘;
$hashed_password = $wp_hasher->HashPassword( $password );

$checkpass = $wp_hasher->CheckPassword($password, $hashed_password) ;

echo “check result = “ . $checkpass ;
echo “\n”;
echo “password = “ . $password . “\n” ;
echo “hashed_password = “ . $hashed_password ;
echo “\n”;

?>

ll file può essere eseguito da terminale con

$ php passwd_wp.php

oppure può essere reso disponibile via webserver .

La password dimenticata può essere sostituita da una nuova password generata utilizzando lo script soprariportato e adminer o phpMyAdmin

wp_passwd_adminer_2

 

Risorse:

Mysql contro Postgresql

postgresql

MySQL e PostgreSQL sono i due database relazionali  open source più  utilizzati e 

mysqllogo

conosciuti. Lo sviluppo iniziale dei due database ha avuto obiettivi diversi. Mysql ha privilegiato la velocità, l’essenzialità mentre Postgresql l’aderenza agli standard e la completezza rendendo disponibili  diverse funzionalità anche se al prezzo di performance inferiori. Ancora per postgresql si affermava che gli sviluppatori di postgresql erano animati dall’obiettivo di portare in ambito open-source un database con l’impostazione dei database di Oracle ( “open-source” Oracle) . Grazie alla velocità e all’essenzialità, che in alcuni ambiti diventà semplicità, Mysql storicamente è stata la prima scelta nelle applicazioni web appoggiate a database.  Non va trascurato poi che Mysql è entrato nella “scuderia” Oracle.

Nel tempo la situazione si è andata modificando ed oggi i due prodotti stanno in qualche modo convergendo nel senso che le prestazioni di Postgresql sono decisamente migliorate mentre Mysql si è aricchito di funzioni. MySQL ( oggi alla versione 5.6)  rimane comunque il più utilizzato e se una volta lo era per la velocità e la praticità ora lo è per l’ampio numero di progetti in cui è estrato a far parte. Infatti quasi tutte le web application si basano o prevedono la possibilità di scelta di MySQL come database. PostreSQL ( oggi alla versione 9.3.1)  dal canto suo offre comunque una protezione dei dati superiore grazie al rispetto degli standard cosa che non accade con MySQL. Per gli sviluppatori di postgresql affidabilità e integrità dei dati rimangono un obiettivo irrinunciabile.

Architettura

Per quanto riguarda il funzionamento MySQL dispone di un strato SQL mentre può utilizzare più engine dati. Ad esempio il motore di archiviazione myISAM  può essere scelto per situazioni con  maggiore concorrenza in lettura e che non richiedono proprietà ACID. InnoDB per avere il supporto ACID anche se non completo.  Invece Postgresql è un database server unificato con un unico  motore di archiviazione.

Al momento gli elementi distintivi che più contraddistinguono i due e che vanno valutati nella scelta di un database SQL opensource sono l’aderenza agli standard SQL, la conformità ACID e la necessità di usare una piattaforma LAMP. Come affermato in premessa l’aderenza alla normativa ISO è sempre stata un tratto distintivo di postgresql. Quindi se si ha la necessità di sviluppare un progetto che abbia questa caratteristica postgresql diventa la prima scelta.

Porting

Se si desidera la possibilità di trasferimento (porting) del progetto, perchè è cresciuto molto, su database Oracle. Postgresql, rispettando  gli standard ISO per SQL, rende il passaggio sufficentemente agevole. Con MySQL questo non sarà possibile poichè non é conforme agli standard ISO e non segue l’impostazione ACID  Atomicità, Coerenza, Isolamento e Durabilità sono le proprietà logiche che devono contraddistinguere le transazioni) . Nel caso di MySQL il trasferiemento può richiedere una pesante riscrittura del progetto. LAMP e Riutilizzo del Codice Molti progetti girano sul LAMP (Linux, Apache, MySQL, PHP/Pearl/Python) web applications come WordPress, Joomla, Mediawiki, …. si appoggiano preferibilmente su MySQL. Molte di queste applicazioni non prevedono la possibilità di utilizzare postgresql pertanto la scelta operata a questo livello condiziona la scelta del database. Per quanto riguarda la possibilità di riutilizzo di codice va evidenziato che esiste molto più materiale, codice a disposizione per MySQL che per postresql proprio per l’ampia dissusione dello stesso nelle web applicaiton. Risorse:

Per un confronto più articolato : MySQL vs PostgreSQL – WikiVS

Nel blog:

Risorse:

Installare Adminer 3.6.3 in Ubuntu 12.04 server

marzo 16, 2013 1 commento

adminer-logoRilasciata in gennaio la versione 3.6.3 di Adminer una interfaccia di amministrazione per database SQL caratterizzata da pulizia ed efficacia oltre a MySQL, supporta PostgreSQL, SQLite, MS SQL, Oracle. A differenza di phpAdmin consiste in un unico file php.

adminer login postgresql

adminer login postgresql

Disponibile anche Adminer-editor un interfaccia user-friendly e di facile utilizzo per editing dei dati dei database per l’utente finale. Adminer e Adminer editor dispongono di plugins e  skins.

Installare Adminer

Per installare adminer in Ubuntu 12.04 è necessario avere installato mysql-server, apache2 e php. Sono necessari anche i moduli php per i database con i quali si intende interagire. Ad esempio
per amministrare mysql dovrà essere installato il modulo php5-mysql, mentre per postgresql è necessario il modulo php5-pgadmin.

I moduli possono essere installati con

sudo apt-get install php5-mysql php5-pgsql

Creare la directory /usr/share/adminer

sudo  mkdir /usr/share/adminer
sudo  cd /usr/share/adminer

scaricare l’ultima versione di adminer

sudo wget "http://www.adminer.org/latest.php"

creare un link simbolico adminer.php

sudo ln -s latest.php adminer.php

Configurare apache perchè utilizzi adminer utilizzando echo e quindi riavviare apache2

echo "Alias /adminer.php /usr/share/adminer/adminer.php" > /etc/apache2/conf.d/adminer.conf

service apache2 restart

Adminer mysql

Disinstallare Adminer

Per disinstallare adminer  rimuovere la directory /adminer e il suo contenuto

sudo  rm -R /usr/share/adminer

rimuovere anche il file di configurazione apache2 e riavvare il web server

sudo rm /etc/apache2/conf.d/adminer.conf
service apache2 restart

Risorse:

 

SQL Cast