27 juin, 2007
- vu 1 215 fois
Oui oui, ça n’arrive pas qu’aux autres de ne plus retrouver son mot de passe “root” sous MySQL. Saisi sur le coup lors de l’installation pour ne pas le laisser vide, impossible de s’en rappeler plusieurs mois après…
Bref, voici la manip’ pour remédier à mes trous de mémoire (Ubuntu Feisty et MySQL 5.x) :
-
On coupe le serveur par défaut :
On relance manuellement le serveur en ignorant la table des droits des utilisateurs :
# mysqld --skip-grant-tables
Dans un nouveau terminal/console, on peut se connecter sans mot de passe à la base mysql :
On remplace l’ancien mot de passe par le nouveau, puis on recharge les droits et on ferme la connexion (le tout sur une même ligne ou les 3 commandes successives) :
UPDATE user SET password=password('VOTRE_MOT_DE_PASSE_ICI') WHERE user='root';
flush PRIVILEGES;
exit;
On peut fermer le terminal/console et revenir sur la première pour arrêter notre serveur lancé manuellement. Relancer MySQL avec la commande :
# invoke-rc.d mysql start
La connexion doit maintenant se faire sans soucis avec le compte root :
PS: utiliser le fabuleux Keepass
Tags: linux,
mysql,
sécurité
Articles relatifs
12 fév, 2007
- vu 1 187 fois
Une petite note rapide sur les étapes d’installation de PDO_MySQL qu’utilise le framework de Zend sur un environnement Ubuntu Edgy - Apache2 - PHP5 (Je considère que PHP5 et Apache2 sont installés):
-
installer les outils minimums nécessaires à la compilation:
$ sudo apt-get install build-essential
installer les librairies PEAR (dont PECL), et les “headers” pour PHP et MySQL:
$ sudo apt-get install php-pear php5-dev libmysqlclient15-dev
Mettre à jour les paquets PECL existants:
Installer directement PDO_Mysql (installera PDO par dépendance) avec la variable PHP_PDO_SHARED initialisée à “1″:
$ export PHP_PDO_SHARED=1 && sudo pecl install pdo_mysql
Faire charger PDO et PDO_MySQL par PHP ( /!\ vérifier le chemin du .ini):
$ sudo echo "extension=pdo.so" >> /etc/php5/apache2/php.ini
$ sudo echo "extension=pdo_mysql.so" >> /etc/php5/apache2/php.ini
Idem pour installer l’extension PDO pour SQLite:
$ export PHP_PDO_SHARED=1 && sudo pecl install pdo_sqlite
$ sudo echo "extension=pdo_sqlite.so" >> /etc/php5/apache2/php.ini
Enfin, redémarrer Apache pour appliquer les changements:
$ sudo apache2ctl restart
pour trouver d’autres extensions, utiliser:
That’s it !
Tags: linux,
mysql,
pear,
php,
zend
Articles relatifs
29 jan, 2007
- vu 167 fois
Suite au transfert d’un de mes domaines vers un nouvel hébergeur, j’ai récupéré la base de données MySQL existante via phpMyAdmin pour la réinjecter sur le nouveau serveur. Or à l’arrivée, je me retrouve avec tous mes caractères spéciaux (accents, cédilles, etc) qui ne sont plus pris en compte:
Calendrier prévisionnel pour 2006 à télécharger
En fait, la base mysql originale était sur un serveur dont le charset était défini en UTF8 alors que le nouveau serveur fonctionne avec le charset latin1. Pour importer la base proprement, il a donc suffit de spécifier à mysql le charset par défaut avec “default-character-set” :
mysql ma_base < mon_fichier.sql --default-character-set=utf8 -u mon_login -p
Autre souci, En observant les logs j’ai remarqué plusieurs erreurs concernant des tailles de paquets qui dépassaient la limite autorisée lors de mon importation :
...
Query OK, 1 row affected (0.01 sec)
ERROR 1153 (08S01): Got a packet bigger than 'max_allowed_packet' bytes
ERROR 1153 (08S01): Got a packet bigger than 'max_allowed_packet' bytes
Query OK, 1 row affected (0.01 sec)
Query OK, 1 row affected (0.02 sec)
Query OK, 1 row affected (0.02 sec)
ERROR 1153 (08S01): Got a packet bigger than 'max_allowed_packet' bytes
Query OK, 1 row affected (0.01 sec)
...
Cette erreur vient de la taille d’un de mes champs du type LONGBLOB que j’utilise pour y stocker directement des fichiers : les données stockées dépassent pour certaines la limite autorisée par défaut. Un simple changement dans le fichier /etc/my.cnf suffit :
[mysqld]
max_allowed_packet=32M
Et hop, tout s’est déroulé à merveille.
Tags: charset,
linux,
mysql
Articles relatifs