Problème de MAJ SQL 4.0 - 5.6
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Question

Problème de MAJ SQL 4.0 - 5.6

by
SergeM12
Created on 2020-03-27 11:32:18 (edited on 2024-09-04 12:26:43) in Hébergements Web

Bonjour,

Je suis en train de passer ma BDD sous SQL 5.6 (puisque le 4.0 ne sera plus supporté au 2 avril). J'ai bien suivi les étapes du guide OVH.

Arrivé à la fin du processus (upload de la BDD en 5.6), je reçois le message d'erreur ci-dessous :

Bonjour,

Vous avez demandé l'import d'un dump externe sur votre base de données. Cette opération n'a pas pu être réalisée avec votre fichier.
Voici le message d'erreur correspondant :

Dump file invalid : ERROR 1064 (42000) at line 16 in file: '/tmp/_ojCf_Q4S4': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MyISAM' at line 9

Nous vous suggérons de corriger votre dump et de retenter l'import."

Je n'ai aucune idée de la façon dont il faut procéder, quelqu'un saurait-il comment je dois m'y prendre ?

Cordialement,


8 Replies ( Latest reply on 2020-04-07 10:06:36 by
kyodev
)

sans voir ton dump, comment veux tu une réponse?

montre les lignes 12 à 20

```text Merci de ta réponse, je n'ai aucune compétence dans le domaine ...

Ci-dessous un copier coller des premières lignes du fichier :

-- phpMyAdmin SQL Dump
-- version OVH
-- http://www.phpmyadmin.net
--
-- Host: sergemal.mysql.db
-- Generation Time: Mar 27, 2020 at 11:30 AM
-- Server version: 4.0.26
-- PHP Version: 5.6.40-0+deb8u2


--
-- Database: `sergemal`
--

-- --------------------------------------------------------

--
-- Table structure for table `admin`
--

CREATE TABLE IF NOT EXISTS `admin` (
`Id_Admin` tinyint(3) unsigned NOT NULL default '0',
`Login` varchar(40) default NULL,
`Password` varchar(40) default NULL,
PRIMARY KEY (`Id_Admin`),
KEY `Id_Admin` (`Id_Admin`),
KEY `Login` (`Login`),
KEY `Password` (`Password`)
) TYPE=MyISAM;

--
-- Dumping data for table `admin`
--

INSERT INTO `admin` (`Id_Admin`, `Login`, `Password`) VALUES
(1, 'smid', 'bysmab');

-- --------------------------------------------------------

--
-- Table structure for table `article`
--

CREATE TABLE IF NOT EXISTS `article` (
`Id_Article` mediumint(8) unsigned NOT NULL auto_increment,
`Niv1` smallint(5) unsigned default '0',
`Niv2` smallint(5) unsigned default '0',
`Texte` blob,
`TexteP` blob,
`Image` varchar(50) default NULL,
`ImageP` varchar(50) default NULL,
`Gabarit` tinyint(3) unsigned default '1',
`GabaritP` tinyint(3) unsigned default '1',
UNIQUE KEY `Id_Article` (`Id_Article`),
KEY `Id_Article_2` (`Id_Article`),
KEY `Niv1` (`Niv1`),
KEY `Niv2` (`Niv2`),
KEY `Gabarit` (`Gabarit`),
KEY `GabaritP` (`GabaritP`),
KEY `Image` (`Image`),
KEY `ImageP` (`ImageP`)
) TYPE=MyISAM AUTO_INCREMENT=122 ;

--
-- Dumping data for table `article` ```

remplace
```text
) TYPE=MyISAM AUTO_INCREMENT=122 ;
```
par
```text
) ENGINE=MyISAM AUTO_INCREMENT=122;
```

Merci, je viens d'effectuer la modification dans le fichier et tenté d'importer à nouveau. Je reçois désormais le mail d'erreur ci-dessous :

"Dump file invalid : ERROR 1064 (42000) at line 16 in file: '/tmp/b8wxLr0Ygg': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MyISAM' at line 9"

Mail d'erreur légèrement modifié ( '/tmp/b8wxLr0Ygg' au lieu de '/tmp/_ojCf_Q4S4').

```sql
CREATE TABLE IF NOT EXISTS admin (
Id_Admin tinyint(3) unsigned NOT NULL default '0',
Login varchar(40) default NULL,
Password varchar(40) default NULL,
PRIMARY KEY (Id_Admin),
KEY Id_Admin (Id_Admin),
KEY Login (Login),
KEY Password (Password)
) TYPE=MyISAM;

--
-- Dumping data for table admin
--

INSERT INTO admin (Id_Admin, Login, Password) VALUES
(1, 'smid', 'bysmab');
```

remplace `Password` par `mdp` (par exempe)

et si nouveau souci, change les collisions avec les mots clés réservés: https://dev.mysql.com/doc/refman/5.6/en/keywords.html

Merci, j'ai modifié tous les "Password" par "Mdp".

En revanche je ne suis pas certain de bien comprendre les modifcations de mots que je dois éventuellement effectuer (j'attends le mail de confirmation).

Merci de ton aide en tous cas.

> Merci, j'ai modifié tous les "Password" par "Mdp".


dans les deux seules lignes que j'ai indiqué...

Si je reprends ton message il y'a 3 occurences de "Password". Dois-je uniquement rempalcer celle de la dernière ligne ?

non, 3 occurences sur 3 lignes
pas ailleurs dans le dump

J'ai rencontré le même problème de syntaxe avec les TYPE=MyISAM à convertir en ENGINE=MyISAM.
J'ai donc rectifié comme indiqué ci-dessus.

Mais au nouvel essai de chargement, le message d'erreur devient :
Dump file invalid : ERROR 1064 (42000) at line 860 in file: '/tmp/bpi_IrFfF9': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ', (5, '9b1de2f322', 'Bonjour Herve,\\r\\n\\r\\nOui je me demande si ce forum sera aus' at line 1

Et alors là je prends peur : Est-ce que l'erreur de syntaxe est dans le texte ? Est-ce que ce texte utilise des parties de mots propres réservés à MySQL ?
Si oui, chaque ligne va bloquer ! Merci de votre aide.

j'ai mis le lien sur les mots réservés mySql5.6

pour le reste il faut analyser le dump

Bjr,
Merci aux contributeurs de nous aider. Juste une chose pour comprendre: comment se fait ce que les guides ovh ne mentionnent pas d'emblée les opérations adaptées à faire. J'ai suivi leur guide et ça ne fonctionnait pas. Je pense que ovh doit avoir la capacité à élaborer un guide complet avec tout ce qui soit à faire dès le départ et qui fonctionne. ça serait bien plus simple pour tous.

tu n'as pas entièrement tort, mais Ovh est un hébergeur, responsable du contenant
toi tu es responsable du contenu, ce n'est pas le même métier

merci bcp de votre retour précis. A ce moment ovh écrit dans le guide, on fait de notre mieux pour vous, mais attendez vous à ce que ça puisse ne pas fonctionner tout de meme. et ensuite retournez vous vers la communauté pour la suite

```text pour compléter le sujet, mini guide:

* remplacer
```text
) TYPE=MyISAM
```
par
```text
) ENGINE=MyISAM
```
* remplacer
```text
timestamp(14) NOT NULL,
```
par
```text
timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
```

---

* alternative en ssh, plus simple:
```text
sed -i 's/) TYPE=/) ENGINE=/' dump.sql
sed -i 's/timestamp(14) NOT NULL,$/timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,/' dump.sql
```

---

* alternative avec phpMyAdmin ? :

peut-être aussi tester avec phpMyAdmin (c'est pas mon truc) ?:


---

* si besoin, pour certaines bases exotiques, se référer aux mots clefs réservés: https://dev.mysql.com/doc/refman/5.6/en/keywords.html
à remplacer s'ils ont été mal employés

1. récupérer une sauvegarde de la base
2. **SAUVEGARDER** cette sauvegarde, ne pas travailler sur le fichier original
* utiliser un **VRAI** éditeur de texte pur (pas de truc Microsoft, pas textedit)
* sur windows notepad++ par exemple: https://notepad-plus-plus.org/downloads/
* sur Apple: à défaut d'expérience: https://atom.io/ ? ```