Il peut arriver, lors de l’importation d’une base de données par mysqldump (ou phpmyadmin) que le message d’erreur ci dessous s’affiche :   

#1273 – Unknown collation: ‘utf8mb4_unicode_ci’

Cela arrive lorsque vous êtes sur un serveur qui utilise une version de MySQL qui date de mathusalem et souvent lorsque vous avez conçu votre site web avec version récente de WordPress …

Il existe heureusement une solution, sous la forme d’un script PHP . Une fois ce dernier copié sur votre serveur (de préférence local) ce dernier modifiera le format de la base de données pour le transformer en un format moins problématique .

Le voici (lien original) . Pour l’utiliser, copiez les lignes ci dessous dans un fichier convertdb.php et copier le fichier convertdb.php a la racine de votre site web. Puis exécutez le.

 

<!DOCTYPE html>
<html>
<head>
<title>DB-Convert</title>
<style>
body { font-family: »Courier New », Courier, monospace; » }
</style>
</head>
<body>

<h1>Convert your Database to utf8_general_ci!</h1>

<form action= »dbconvert.php » method= »post »>
dbname: <input type= »text » name= »dbname »><br>
dbuser: <input type= »text » name= »dbuser »><br>
dbpass: <input type= »text » name= »dbpassword »><br>
<input type= »submit »>
</form>

</body>
</html>
<?php
if ($_POST) {
$dbname = $_POST[‘dbname’];
$dbuser = $_POST[‘dbuser’];
$dbpassword = $_POST[‘dbpassword’];

$con = mysql_connect(‘localhost’,$dbuser,$dbpassword);
if(!$con) { echo « Cannot connect to the database « ;die();}
mysql_select_db($dbname);
$result=mysql_query(‘show tables’);
while($tables = mysql_fetch_array($result)) {
foreach ($tables as $key => $value) {
mysql_query(« ALTER TABLE $value CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci »);
}}
echo « <script>alert(‘The collation of your database has been successfully changed!’);</script> »;
}

?>