MyBB.support, le portail francophone de MyBB

Version complète : [Réglé] Problèmes d'importation Database
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.

Type : Erreur lors de l'importation Database

Descriptions :
J'ai essayer les deux méthodes à ma disposition et ceux plusieurs fois et après plusieurs recherche sur google et essais sans succès, je viens vous voir en vous détaillant les deux méthodes utilisés dans l'espoir que vous m'aidiez à m'en sortir.
[Image: 711284bugs01.png]

1ere méthode : Exportation de toutes les tables de la Database via Phpmyadmin sur sauvegarde local (mon PC).
Ensuite lors de l'importation de la Database toujours via l'onglet import de Phpmyadmin, voici l'erreur qui surviens :


2éme méthode : Exportation via l'administration de Mybb avec la sauvegarde Database en donwload.
Ensuite lors de l'importation via Phpmyadmin, alélouia sa marche niquel (a priori) mais le problème se posent lorsque je tente d'actualisé mon forum transféré sur le site Test (cliquez ici). Des fichiers manquent à l’appel.
[Image: 246494bugs02.png]

Juste pour rajouter une petite informations qui peut éventuellement avoir son importance.

Ma base de donné se nomme _board et non _mybb ce qui peut expliquer que la database de parviens pas a retrouver le chemin des fichiers visiblement. Peut être connaissez vous une requête pour la renommé.

En espérant pouvant vous aidez à comprendre mon soucis.

PS : avant que on me posent la question, j'est déja essayer ce tuto
Sauvegarder/restaurer la base de données
Selon ce que je voie, la première méthode échoue car le fichier est un fichier compressé ZIP d'après les 2 premiers caractères "PK".

Pour la deuxième méthode, je me demande pourquoi une autre Base de Données ne serait pas créée avec le bon nom pour recevoir les tables?

Dans Phpmyadmin il y a une option pour renommer les bases de données ou encore les copier sous un autre nom... Wink

Il y a aussi la possibilité de changer les informations dans le fichier de configuration situé dans inc/config.php contenant ces deux lignes :
$config['database']['database'] = 'deado627_test';
$config['database']['table_prefix'] = 'mybb_';
Tout d'abord, merci à toi de t’être penché sur mon problèmes.

Ensuite j'ai donc chercher comment renommer les préfixes de tables sur le site qui héberge sans y parvenir.
J'ai donc cette fois ci sur le site trouver une option pour renommer les tables (qui n'est pas sur l'autre hébergeur) et la le forum charge correctement la base de donné à la seule différence que le thèmes semble avoir complètement disparue.
[Image: 473284bugs03.png]

Tandis que sur le site ou il a été construit :
[Image: 591265bugs04.png]
Les fichiers du thème sont inaccessibles, par exemple celui-ci :
http://deadoralive-team.fr/test/cache/themes/theme2/global.css

Le répertoire "theme2" n'existe pas!
En copiant le theme1 en theme2 avec les mêmes fichier, sa reviens à la normale.

Maintenant une autre question se posent. Existe t'il une requêtes SQL pour changer d'un coup tout les préfixes board_ par mybb_ sur toutes les tables ?

J'ai tester sa en requêtes SQL :
Code :
DECLARE @old sysname, @new sysname, @sql varchar(1000)

SELECT
  @old = 'board'
  , @new = 'mybb'
  , @sql = '
  IF EXISTS (SELECT NULL FROM INFORMATION_SCHEMA.TABLES
  WHERE
      QUOTENAME(TABLE_SCHEMA)+''.''+QUOTENAME(TABLE_NAME) = ''?''
      AND TABLE_SCHEMA = ''' + @old + '''
  )
  EXECUTE sp_changeobjectowner ''?'', ''' + @new + ''''

EXECUTE sp_MSforeachtable @sql

Mais il me dit devoir sélectionnez une colonne.
Il serait probablement plus facile de remplacer le préfixe dans le fichier de configuration inc/config.php, en remplaçant :

$config['database']['table_prefix'] = 'mybb_';

par :

$config['database']['table_prefix'] = 'board_';
(04-04-2013, 17:49)exdiogene a écrit : [ -> ]Il serait probablement plus facile de remplacer le préfixe dans le fichier de configuration inc/config.php, en remplaçant :

$config['database']['table_prefix'] = 'mybb_';

par :

$config['database']['table_prefix'] = 'board_';

Après l'avoir rechanger à l'instant, la requétes ci dessus ne semble toujours pas fonctionné que se sois dans SQL ou dans requetes.
[Image: 626791sql01.png][Image: 899420sql02.png]

Très difficile d'aider quand il est impossible de lire la requête en question! Tongue

Les tables ont-elles au moins du contenu?

La requêtes en question est juste un plus haut dans mes messages Rolleyes

>>> Message Numéro #6 (Cliquez ici)

Oui les tables on un contenu.
Quel est donc le but de cette requête si les tables sont maintenant fonctionnelles?
Sur le serveur de test elle sont fonctionnels car j'ai pu la renommer via le Phpmyadmin de l’hébergeur qui proposer directement l'option mais sur l’hébergeur final ou il doit être transféré il n'y a pas cette commande.
En écrivant ce post, je viens d'avoir une idée. exportez la DB renommé et la réimportez sur le final.
Il ne faut pas oublier qu'il est aussi possible de changer le nom de la base de données dans le fichier inc/config.php, en remplaçant la valeur de :

$config['database']['database'] = 'nom de la base de données';


D'après ce que j'y vois, il faudrait ces deux lignes :
$config['database']['database'] = 'a8802338_board';
$config['database']['table_prefix'] = 'mybb_';
Voila, le problème est résolu alors au cas ou sa arrive a d'autres je vous mets ma solution.

Mybb ne supporte pas d'autres préfixes que "mybb_"

Tout autres préfixes fait planter les transfert et donc voici un script pour renommer entièrement tout vos préfixes d'un coup.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
/*                                                                            */
/* Titre          : modifier en masse le préfixe du nom de tables mysql       */
/*                                                                            */
/* Auteur         : forty                                                     */
/* Date édition   : 19 Sept 2008                                              */
/*                                                                            */


$sql_serveur = "à renseigner"; // Serveur mySQL
$sql_base = "à renseigner"; // Base de données mySQL
$sql_login = "à renseigner"; // Login de connection a mySQL
$sql_password = "à renseigner"; // Mot de passe pour mySQL

$prefix_old = 'forum_';
$prefix_new = 'forum__';

$lk = @mysql_connect($sql_serveur, $sql_login, $sql_password) OR die(mysql_error
());
@mysql_select_db($sql_base, $lk) OR die(mysql_error());

$q = mysql_query("SHOW TABLES LIKE '" . $prefix_old . "%'", $lk) OR die(
mysql_error());
while (($r = mysql_fetch_row($q)) !== false) {
    $new_name = $prefix_new . substr($r[0], strlen($prefix_old));
    mysql_query("RENAME TABLE `" . $r[0] . "`  TO `" . $new_name . "` ;", $lk)
OR die(mysql_error());
    echo $r[0] . ' => ' . $new_name . "<br>\n";
}
?>

ATTENTION : Ce script doit étre nommé "script.php" et placé à la racine de votre site, puis se lancer de votre page :

*.tonsite.fr/script.php

Je tiens également à remercier Exdiogene qui a su m'aiguillé sur la bonne route ainsi que toutes l'équipe "mybb.fr"
 Utilitaire de traduction fourni par Regentronique