Toon posts:

[MYSQL] Database converteren

Pagina: 1
Acties:

Verwijderd

Topicstarter
Zit met het probleem dat ik in XAMPP een iste heb gemaakt, echter er geen rekening mee gehouden dat XAMPP een nieuwere versie van Mysql gebruikt dan mijn webhost. Hierdoor geeft de webhost bij het importeren van de database steeds een error, en wil het importeren dus neit lukken.

Is het mogelijk om de database (XAMPP draait op 5.0.15) te converteren naar Mysql 4.1.15, en voor de testserver naar 3.23.58, zodat ik de database wel gewoon kan importeren?

Op google vindt ik tot op heden weinig.

[ Voor 4% gewijzigd door Verwijderd op 08-03-2006 10:00 ]


  • Cloud
  • Registratie: November 2001
  • Laatst online: 09-03 19:32

Cloud

FP ProMod

Ex-moderatie mobster

Ik begrijp je topicstart lang niet helemaal, maar is het niet een optie om via een SQL Dump te werken? Het lijkt mij dat de SQL code voor beide versies toch zo goed als onveranderd moet zijn. :)

En anders moet je even wat specifieker zijn.. Een goed begin zou zijn te vertellen wat voor errors je uberhaupt krijgt ;)

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


Verwijderd

Topicstarter
Oke, ik maak dus idd een sql dump van de XAMPP database (5.0.15)
maar als ik deze wil uitvoeren in de "nieuwe" database (4.1.15)
geeft het de volgende uitvoer:

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
31
32
 SQL-query:

CREATE TABLE `jos_artbanners` (
`id` int( 11 ) NOT NULL AUTO_INCREMENT ,
`cid` int( 11 ) NOT NULL default '0',
`tid` int( 11 ) NOT NULL default '0',
`type` varchar( 10 ) COLLATE latin1_general_ci NOT NULL default 'banner',
`name` varchar( 50 ) COLLATE latin1_general_ci NOT NULL default '',
`imp_total` int( 11 ) NOT NULL default '0',
`imp_made` int( 11 ) NOT NULL default '0',
`clicks` int( 11 ) NOT NULL default '0',
`image_url` varchar( 100 ) COLLATE latin1_general_ci NOT NULL default '',
`click_url` varchar( 200 ) COLLATE latin1_general_ci NOT NULL default '',
`state` tinyint( 1 ) NOT NULL default '0',
`default` tinyint( 1 ) NOT NULL default '0',
`custom_banner_code` text COLLATE latin1_general_ci,
`last_show` datetime NOT NULL default '0000-00-00 00:00:00',
`msec` int( 11 ) NOT NULL default '0',
`checked_out` int( 11 ) unsigned NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`publish_up` datetime NOT NULL default '0000-00-00 00:00:00',
`publish_down` datetime NOT NULL default '0000-00-00 00:00:00',
`reccurtype` tinyint( 1 ) NOT NULL default '0',
`reccurday` tinyint( 1 ) NOT NULL default '0',
`reccurweekdays` varchar( 100 ) COLLATE latin1_general_ci NOT NULL default '',
`access` int( 11 ) NOT NULL default '0',
PRIMARY KEY ( `id` )
) ENGINE = MYISAM DEFAULT CHARSET = latin1 COLLATE = latin1_general_ci AUTO_INCREMENT =16

MySQL said: Documentation
#1064 - You have an error in your SQL syntax near 'collate latin1_general_ci NOT NULL default 'banner',
  `name` varchar(50) colla' at line 5


Nu is die #1064 voor woorden die niet "herkend" worden in vorige versies van MySQL, maar er moet toch wel een manier zijn om dat te omzijlen :(

[ Voor 13% gewijzigd door Verwijderd op 08-03-2006 10:07 ]


  • bvp
  • Registratie: Maart 2005
  • Laatst online: 08-04 12:05

bvp

Verwijderd schreef op woensdag 08 maart 2006 @ 09:58:
Is het mogelijk om de database (XAMPP draait op 5.0.15) te converteren naar Mysql 4.1.15, en voor de testserver naar 3.23.58, zodat ik de database wel gewoon kan importeren?
Waarom converteren?
Beschik je over PhpMyAdmin? Daar gewoon heel je database als SQL exporteren en op je host importeren in de admin.
That's it ;)

edit:
Te laat gepost, sql dump in post hierboven.

[ Voor 7% gewijzigd door bvp op 08-03-2006 10:09 ]


Verwijderd

Ik zou gewoon alle " COLLATE latin1_general_ci " replacen door een spatie, je geeft de charset al onderaan de tabel aan met :
ENGINE = MYISAM DEFAULT CHARSET = latin1 COLLATE = latin1_general_ci AUTO_INCREMENT =16

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 08-04 12:03

Janoz

Moderator Devschuur®

!litemod

De foutmelding lijkt me redelijk duidelijk. Je weet al wat #1064 betekend en je ziet dat het bij "COLLATE" mis gaat. Kijk eens in de manual van die mysql versie (of naar de release notes waarin de verschillen tussen de versies staan) of dit uberhaupt wel in die versie werkt.

Wat je zou kunnen doen is de onderdelen die je db nog niet ondersteunen weg te laten, maar hiermee kun je nooit zekerheid krijgen of alles wel blijft werken. De makkelijkste oplossing blijft je hoster te verzoeken te upgraden, of een andere hoster te zoeken.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1