Accenten in mysql


Omdat ik binnenkort nog een tweetal mysql-databases moet overzetten naar de nieuwe server ben ik eens in het probleem van de accenten gedoken. Wat is namelijk het geval, de export die door phpmyadmin wordt aangemaakt is standaard in utf8-formaat, ook al is de database en de tabellen eronder in een ander formaat. Nu is er bij het importeren in phpmyadmin de optie om aan te geven welk karakterset voor het bestand gebruikt moet worden.

Dat werkt op zich prima, alleen is er wel een grens van 2mb voor de bestandsgrootte. Nu kan ik het bestand gaan opdelen, maar dat is teveel werk. En bovendien, phpmyadmin kan het automatisch dus dan moet het toch ook via de shell automatisch kunnen?

Een duik in de binaire log leerde me dat het volgende commando uitgevoerd wordt voor het sql-bestand wordt geimporteerd:

SET ONE_SHOT CHARACTER_SET_CLIENT  = 33, COLLATION_CONNECTION  = 33, COLLATION_DATABASE = 8, COLLATION_SERVER = 8

Dit commando kan ook in de shell worden gegeven! Als ik hierna gelijk het sql-bestand uitvoer in mysql dan komen alle tekens op de juiste manier in de database.

Andere mogelijkheid is om te zorgen dat alles (dus mysql-server, mysql-client en php) alles in utf8 bijgehouden wordt. Maar ik heb het gevoel dat daar ook nog wel wat addertjes onder het gras zitten. Voor nu heb ik in ieder geval een oplossing die werkt!

Toevoeging 1-10-2006 19:38

Een andere manier is om de optie ––skip-opt niet te gebruiken. Echter, ik heb bij de huidige provider geen mogelijkheid om dat in te stellen, vandaar deze werkwijze.


Leave a Reply

Your email address will not be published. Required fields are marked *