Solución:
La técnica en esta publicación funcionó para mí.
1) Haga clic en la pestaña “Exportar” de la base de datos.
2) Haga clic en el botón de opción “Personalizado”.
3) Vaya a la sección titulada “Opciones específicas de formato” y cambie el menú desplegable de “Sistema de base de datos o servidor MySQL anterior para maximizar la compatibilidad de salida con:” de NONE a MYSQL40.
4) Desplácese hasta la parte inferior y haga clic en “IR”.
No estoy seguro de si hacer esto causa alguna pérdida de datos, sin embargo, en la única vez que lo probé, no noté ninguna. Tampoco lo hizo nadie que respondió en los foros vinculados anteriormente.
Editar 12/8/16 – Creo que exportar una base de datos de esta manera me hace perder datos guardados en los widgets del Editor visual de Black Studio TinyMCE, aunque no he realizado varias pruebas para confirmarlo.
Si ya ha exportado un .sql
archivo, lo mejor que puede hacer es buscar y reemplazar lo siguiente si los tiene en su archivo:
-
utf8mb4_0900_ai_ci
parautf8_unicode_ci
-
utf8mb4
parautf8
-
utf8_unicode_520_ci
parautf8_unicode_ci
Reemplazará utf8mb4_unicode_ci
para utf8_unicode_ci
. Ahora vaya a su cPanel phpMyAdmin y configure la intercalación de la base de datos en utf8_unicode_ci
mediante Operaciones> Intercalación.
Si está exportando a un .sql
, es mejor cambiar el formato de la forma en que exporta el archivo. Echa un vistazo a la respuesta de Evster (está en la misma página que esta)
Tuve el mismo problema ya que todos nuestros servidores ejecutan versiones anteriores de MySQL. Esto se puede solucionar ejecutando un script PHP. Guarde este código en un archivo y ejecútelo ingresando el nombre de la base de datos, el usuario y la contraseña y cambiará la intercalación de utf8mb4/utf8mb4_unicode_ci
para utf8/utf8_general_ci
<!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="db-convert.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>";
}
?>