MYSQL : packet mysql-serveur cassé - restaurer les données

Serais-tu passé à côté …

[quote=“MisterMagoo”]Failed to start LSB: Start and stop the my
– Subject: L’unité (unit) mysql.service a échoué[/quote]

[quote=“MisterMagoo”]J’ai une machine sid sur laquelle tournait un serveur mysql avec quelques BD,
malheureusement lors de la dernière mise à jour de sid (dist-upgrade),
j’ai eu pas mal de problèmes et entre autre un serveur mysql cassé qui ne démarre plus …[/quote]

Non je ne suis pas passé à coté, mais mysqld ne rend pas la main, ne déclare pas qu’un port donné est utilisé, bref ne donne aucun message d’erreur, et par ailleurs ne déroule pas son démarrage. Bref il plante mais ne dit rien. J’ai donc peur que ça soit un pbm sérieux de ses bases de données notamment des bases propres à mysql (utilisateurs, droits, etc). En clair je suis pessimiste, je pensais que mysql arriverait à se débrouiller avec le répertoire /var/lib/mysql or ça a l’air de le planter gravement.

En tout cas je n’ai plus d’idées, sauf peut être:
0) Stopper mysqld

  1. remettre le /var/lib/mysql et /etc/mysql/debian.cnf qui marche
  2. Remplacer les fichiers ib_logfile0 ib_logfile1 ibdata1 sous /var/lib/mysql ainsi que le répertoire correspondant à la base de données après l’avoir créée (vide). (je pense que le fichier ibdata1 suffit mais on ne sait jamais
  3. Redémarrer le serveur et tenter un mysqldump

Ok, j’ai enfin récupéré mes BD.
J’ai fait tellement de manip que je ne saurai expliquer ce qui fait que le problème est réglé :

J’ai donc repris mon /var/lib/mysql d’origine et copié mes BD dans ce dossier.
j’ai ensuite remplacé les db_* et relancé le serveur, ça n’a pas marché … pas de possibilité de démarrage (la commande ne m’a pas rendu la main et j’ai dû fermer la fenêtre de la console).
je suis revenu en arrière (repris mes ancien db_*) et là miracle le serveur démarre et j’ai accès à mes bases;

Je me suis donc empressé de faire un mysqldump de mes bd.

je vais les recréer pour avoir un système cohérent.
Merci à toi fran.d

rectification : remplacer db_* par ib_* et fran.d par fran.b

Encore merci …

Encore une question.
J’aimerai repartir d’un serveur complètement vide de toute base et restaurer mes bd à partir de mon fichier dump.sql.
Comment faire pour repartir de zéro ?

Tu désinstalles mysql (conserve un backup de /var/lib/mysql tt de même) avec l’option purge puis réinstalle le bazar mais tu devras refaire tous les droits je pense.

je crois que je m’y suis mal pris et maintenant je ne sais plus quoi faire.
J’ai supprimé le dossier /var/lib/myslq (après avoir fait un backup).
Et ensuite j’ai désinstallé mysql-server avec purge puis réinstallé mysql-server et ensuite
dans mysql en tant que root :

mysql> grant all privileges on mtcl.*  to 'jt'@'localhost' identified by '**********';
Query OK, 0 rows affected (0.00 sec)

puis connecté en tant que jt :

mysql> create database mtcl;
ERROR 1006 (HY000): Can't create database 'mtcl' (errno: 2)

Mon objectif étant par la suite de restaurer la base mtcl en tapant la commande :

source mtcl.sql

[quote=“MisterMagoo”]puis connecté en tant [strike]que jt[/strike] :

Non, mais en tant que [mono]root mysql[/mono], …

[code][06:52:27] ~ # mysql -u root -p
Enter password:
(…)
mysql> create database mtcl;
(…)
mysql> flush privileges;
Query OK, 0 rows affected (0.12 sec)

mysql> quit;
Bye
[06:55:06] ~ #
[/code]

ça y est ça marche ouf … J’ai dû refaire une désinstallation plus complète de mysql : apt-get remove --purge mysql*
Mes commandes ont fonctionné cette fois , j’ai donc accès à mes bases;

Nouveau problème : j’avais accès à mes bd par une interface web via php qui fonctionnait parfaitement bien sur l’autre machine (sid).
Mais pas encore sur la machine jessie :

j’ai installé apache2, php5 et php5_mysql
Pour me connecter j’utilise le module pdo : je n’ai aucun doute sur le code il est fonctionnel donc le problème est ailleurs.
Peut-être un paquet manquant ? ou quelque chose à activer ?

Quel est le pbm? Note qu’il te faut refaire les utilisateurs

Oui je n’ai pas été clair sur le problème.
Mon utilisateur jt a été recrée et je peux accéder à mes bases avec cet utilisateur en ligne de commande mysql. Donc ok pour ça

Cependant au niveau php,il n’y a pas moyen d’afficher les données de la base dans une page web.
Je précise que le code php utilisé était fonctionnel sur l’ancienne machine.

j’ai installé apache2, php5 et php5_mysql mais pour l’instant ça ne marche pas.

Que disent les logs d’apache?

J’ai refait la manip : connexion au serveur web et clic sue le bouton afficher pour voir les données de la BD :

Le seul log impacté est access.log

::1 - - [22/Jul/2015:13:48:20 +0200] “GET /~jt/mtcl/index.html HTTP/1.1” 200 581 “http://localhost/~jt/mtcl/afficher.php” “Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0 Iceweasel/31.8.0”

le fichier error.log n’a pas été impacté par la manip

J’ai trouvé d’où vient le problème mais je ne sais pas comment le résoudre :
mon code php est ignoré : j’ai fait un “hello world” en php mais j’obtiens une page blanche …

Bizarre, as tu libapache2-mod-php5 et/ou libapache2-mod-php5filter d’installés?

jt@vorenus:~$ dpkg -l | grep php5

ii libapache2-mod-php5 5.6.9+dfsg-0+deb8u1 amd64 server-side, HTML-embedded scripting language (Apache 2 module)
ii php5 5.6.9+dfsg-0+deb8u1 all server-side, HTML-embedded scripting language (metapackage)
ii php5-cli 5.6.9+dfsg-0+deb8u1 amd64 command-line interpreter for the php5 scripting language
ii php5-common 5.6.9+dfsg-0+deb8u1 amd64 Common files for packages built from the php5 source
ii php5-json 1.3.6-1 amd64 JSON module for php5
ii php5-mysql 5.6.9+dfsg-0+deb8u1 amd64 MySQL module for php5
ii php5-readline 5.6.9+dfsg-0+deb8u1 amd64 Readline module for php5

Une simple remarque :
J’ai posté le dernier message à 14h34 heure indiquée sur ma machine et pourtant sur le forum le message est horodaté à 13h34 …

C’est dans tes préférences. Essaye de faire
a2enmod php5
ou
a2enmod php5filter

sinon tu dois avoir quelque part un fichier avec quelque chose du genre

<IfModule mod_php5.c> <FilesMatch "\.ph(p3?|tml)$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> # To re-enable php in user directories comment the following lines # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it # prevents .htaccess files from disabling it. <IfModule mod_userdir.c> <Directory /home/*/public_html> php_admin_value engine Off </Directory> </IfModule> </IfModule>

jt@vorenus:~$ sudo a2enmod php5

Module php5 already enabled

jt@vorenus:/etc/apache2/mods-enabled$ cat php5.conf

<FilesMatch “.+.ph(p[345]?|t|tml)$”>
SetHandler application/x-httpd-php

<FilesMatch “.+.phps$”>
SetHandler application/x-httpd-php-source
# Deny access to raw php sources by default
# To re-enable it’s recommended to enable access to the files
# only in specific virtual host or directory
Require all denied

Deny access to files without filename (e.g. ‘.php’)

<FilesMatch “^.ph(p[345]?|t|tml|ps)$”>
Require all denied

Running PHP scripts in user directories is disabled by default

To re-enable PHP in user directories comment the following lines

(from <IfModule …> to .) Do NOT set it to On as it

prevents .htaccess files from disabling it.

php_admin_flag engine Off

Bon, qu’y-a-t-il dans le fichier sous sites-available correspondant à ton site? (option ExecCGI?)