Importación MySQL con UTF-8

Solucionar error al importar una base de datos MySQL con UTF-8

El error al importar una base de datos MySQL con UTF-8 es uno de los problemas más típicos que se nos presentan cuando necesitamos trasladar un sitio web de un servidor a otro conservando la misma base de datos. La necesidad de exportar dicha base de datos de un servidor para importarla en el otro puede originar esta incidencia, que suele dar demasiados dolores de cabeza a algunos desarrolladores.

La cuestión es que estoy más que seguro que en más de alguna ocasión os habréis encontrado con el típico problema de importar una base de datos MySQL y que, al hacerlo, los caracteres como la «ñ» o los acentos no solo no se han importado, sino que, además, el contenido se corta justo en ese caracter y el proceso de importación se corta de manera fulminante, dejando toda la información a medio importar.

Las múltiples soluciones que se nos puedan ocurrir importando una y mil veces la base de datos desde el fichero SQL generado, eligiendo cada vez una codificación diferente (utf8_general_ci, latin1_spanish_ci, etc…) puede hacernos perder mucho tiempo y esfuerzo, ya que nada de eso funcionará. Descubrir cómo solucionar el error al importar una base de datos MySQL con UTF-8 está a un sólo clic, porque la solución es más rápida y sencilla de lo que parece.

El problema no está en el proceso de importación

No es necesario volverse loco importando la base de datos cada vez con una codificación diferente. Este proceso funciona correctamente. No creas que los creadores de la herramienta phpMyAdmin han cometido fallos en la programación del código fuente, no. Funciona, y la verdad es que muy bien.

El problema hay que buscarlo en el fichero generado cuando se exportó la base de datos. En este fichero, cuya extensión suele ser «.sql» está la clave para solucionar este problema. La cuestión es que debe haber sido exportado con la codificación UTF-8, que es la que aparece por defecto cuando se exporta algo desde la herramienta phpMyAdmin. Si tienes la posibilidad de volver a generar dicho fichero para exportar la base de datos, te recomiendo que lo hagas de nuevo asegurándote de que se debe exportar con la codificación UTF-8 y con formato SQL.

Bien, la cuestión es que el fichero sí está con esta codificación, pero no su contenido. Por lo tanto, hay que cambiar este aspecto. ¿Cómo? Utilizando el programa Notepad++. Si no lo tienes, descárgalo e instálalo en tu ordenador.

Solución al error al importar una base de datos MySQL con UTF-8

¡ATENCIÓN! Aquí está la clave para solucionar el problema: Abre el fichero SQL que contiene la base de datos exportada con el programa Notepad++. En el menú, elige la opción FORMATO y luego haz clic en CONVERTIR EN UTF-8.

Al convertir el contenido del fichero a UTF-8 verás que todos los caracteres como la «ñ» o las vocales con acento se habrán sustituido por 3 caracteres (el primero siempre una «x») y que están resaltados con un fondo diferente respecto al resto de caracteres del fichero. Guarda esta versión del fichero con otro nombre (por ejemplo, añadiendo al final «utf8») para diferenciarlo del fichero original y no reemplazarlo.

Captura 1: base de datos MySQL con UTF8
Paso1: convierte el contenido del fichero con la codificación UTF-8.

El siguiente paso es asegurarse que el cotejamiento de la base de datos donde vas a importar el fichero es la adecuada. Esto debes hacerlo desde la herramienta phpMyAdmin y, concretamente, en las opciones de la base de datos donde se importará el fichero con los datos. Tienes que establecer la codificación en «utf8_general_ci», así que si no está ya así configurado, cámbialo.

Por último, sólo tienes que importar el nuevo fichero SQL que hemos convertido (el acabado en UTF8) como hacías antes, asegurándote que la codificación es UTF-8. Una vez hecho esto, puedes comprobar cualquier tabla de la base de datos mirando el contenido de sus registros y comprobar que la información está como debe estar, es decir, con «ñ», acentos y demás.

Captura 2: base de datos MySQL con UTF8
Paso 3: importa el nuevo fichero con codificación UTF-8

Como has podido ver, con poco esfuerzo y en poco tiempo hemos encontrado solución al error al importar una base de datos MySQL con UTF-8. Espero que esta pequeña guía te haya ayudado y te invito a participar en este artículo con tus experiencias, comentarios, sugerencias y dudas sobre este problema.

Y gracias por leerme.

4.4/5 - (8 votos)

106 comentarios en “Solucionar error al importar una base de datos MySQL con UTF-8”

  1. Hola, ya apliqué Convertir a UTF8 y no le hace nada a mi archivo .sql Siguen estando los acentos mal. No cambia a los 3 caracteres con X. Qué puedo hacer?

    1. Complementando, hice un mysqldump de la bd en mysql en un servidor Linux

      Estas son las primeras líneas de mi archivo .sql

      — MySQL dump 10.13 Distrib 5.1.45, for unknown-linux-gnu (x86_64)

      — Host: localhost Database: ojs
      — ——————————————————
      — Server version 5.1.45-log

      /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
      /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
      /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
      /*!40101 SET NAMES utf8 */;
      /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
      /*!40103 SET TIME_ZONE=’+00:00′ */;
      /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
      /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
      /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=’NO_AUTO_VALUE_ON_ZERO’ */;
      /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;


      — Table structure for table `access_keys`

      DROP TABLE IF EXISTS `access_keys`;
      /*!40101 SET @saved_cs_client = @@character_set_client */;
      /*!40101 SET character_set_client = utf8 */;

      Y esta es una de las líneas que contienes los datos con errores en acentos

      INSERT INTO `author_settings` VALUES (5,’es_ES’,’biography’,’Instituto Finlay, Centro de Investigación-Producción

  2. problema al importar un txt a una tabla en phpMyadmin, arroja error de sintaxis, tenga o no tenga signos como la (,) o 3l (;) que podria ser gracias

    1. Hola Gustavo. Gracias por tu comentario.
      Necesitaría más datos sobre el error que te arroja para poder ayudarte. Con la información que aportas no puedo ayudarte.
      Saludos.

  3. Hola buenas tardes, a la hora de importar mi base de datos al hosting «acens» y acceder a la página web me aparece el siguiente mensaje «El sitio está experimentando dificultades técnicas.»
    Gracias de antemano, un saludo.

    1. Hola Francisco. Gracias por tu comentario.
      Ese mensaje puede ser debido a cualquier cosa. Por favor, dame más datos para poder ayudarte.
      Un cordial saludo.

    1. Hola Miguel. Gracias por tu comentario.
      Como te he respondido al otro comentario, la solución pasa por lo que te indico. Prueba a ver.
      Un cordial saludo.

  4. Hola Oscar,

    Estoy siguiendo la guía pero no he podido lograr que funcione la migración de mi BD de wordpress

    Tengo la base en este sistema de origen que se muestra en PHPMYADMIN:

    Server: Localhost via UNIX socket
    Server version: 5.5.59-0+deb7u1-log
    Protocol version: 10

    MySQL charset: UTF-8 Unicode (utf8)

    Apache/2.2.22 (Debian) 7
    MySQL client version: 5.5.59
    PHP extension: mysqli Documentation

    Server connection collation: utf8_general_ci

    y lo voy a migrar a este:

    Server: Localhost via UNIX socket
    Server type: MariaDB
    Server version: 10.1.38-MariaDB-0+deb9u1 – Debian 9.8
    Protocol version: 10

    Server charset: UTF-8 Unicode (utf8)

    Las tablas en la base de origen tienen en su mayoría tienen esta codificación:
    Tipo de base: InnoDB utf8mb4_unicode_ci 48.0 KiB
    y unas pocas: utf8_general_ci

    He intentado con la exportación normal y con la opción Custom de compatibilidad MYSQL40 tanto al exportar de origen como en importar en destino.

    Sigue saliendo el error:

    SQL query:

    CREATE TABLE IF NOT EXISTS `wp_commentmeta` (
    `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    `comment_id` bigint(20) unsigned NOT NULL DEFAULT ‘0’,
    `meta_key` varchar(255) DEFAULT NULL,
    `meta_value` longtext,
    PRIMARY KEY (`meta_id`),
    KEY `comment_id` (`comment_id`),
    KEY `meta_key` (`meta_key`(191))
    ) TYPE=InnoDB AUTO_INCREMENT=20

    MySQL said: Documentation
    #1046 – No database selected

    1. Hola Miguel. Gracias por tu comentario.
      Según veo en el error que te arroja el sistema, te indica que no has seleccionado la base de datos donde importar las tablas. Este es un típico error que se da mucho. En ocasiones, según la exportación realizada, la sentencia SQL lleva incorporada al principio la instrucción CREATE DATABASE que lo que hace es crear la base de datos donde se importarán las tablas. En caso de no existir esta instrucción, antes de proceder con la importación debes seleccionar la base de datos dentro de tu phpMyAdmin, y una vez dentro, importar. Si no tienes ninguna base de datos, primeramente la debes crear a mano y ya luego importar.
      Espero haberte ayudado.
      Un cordial saludo.

      1. Muchas gracias Oscar. Efectivamente eso era lo que faltaba, creé la tabla primero y después todo marchó bien

        1. Hola Miguel.
          Estupendo. Me alegro que se haya solucionado tu problema y un placer haberte podido ayudar.
          Un cordial saludo.

  5. Saludos Don Oscar

    Vieras que tengo un problema con mi Base de Datos xq ya segui todos tus pasos de convertirla en UTF-8 en Notepad++ y me sigue apareciendo el siguiente error 🙁

    Error
    Análisis estático:
    Se encontraron 3 errores durante el análisis.

    Comienzo inesperado de declaración. (near «T» at position 0)
    Comienzo inesperado de declaración. (near «SQL_MODE» at position 2)
    Comienzo inesperado de declaración. (near «»NO_AUTO_VALUE_ON_ZERO»» at position 13)

    consulta SQL:
    T SQL_MODE = «NO_AUTO_VALUE_ON_ZERO»
    MySQL ha dicho:
    #1064 – Algo está equivocado en su sintax cerca ‘T SQL_MODE = «NO_AUTO_VALUE_ON_ZERO»‘ en la linea 1

    Aquí te dejo mi Base de Datos…le agradecería mucho si me podrias ayudar a resolverlo…Gracias!!

    SET SQL_MODE = «NO_AUTO_VALUE_ON_ZERO»;
    SET AUTOCOMMIT = 0;
    START TRANSACTION;
    SET time_zone = «+00:00″;

    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8mb4 */;

    CREATE TABLE `registro` (
    `nombre` varchar(25) NOT NULL,
    `apellido` varchar(25) NOT NULL,
    `cedula` varchar(15) NOT NULL,
    `direccion` varchar(100) NOT NULL,
    `celular` varchar(12) NOT NULL,
    `correo` varchar(35) NOT NULL,
    `gradoacademico` varchar(13) NOT NULL,
    `carrera` varchar(17) NOT NULL,
    `materias` varchar(2) NOT NULL,
    `referencias` varchar(50) NOT NULL,
    `costomaterias` varchar(6) NOT NULL,
    `costogrado` varchar(6) NOT NULL,
    `costocarnet` varchar(4) NOT NULL,
    `costototal` varchar(7) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    INSERT INTO `registro` (`nombre`, `apellido`, `cedula`, `direccion`, `celular`, `correo`, `gradoacademico`, `carrera`, `materias`, `referencias`, `costomaterias`, `costogrado`, `costocarnet`, `costototal`) VALUES
    (‘Alexander’, ‘Rojas’, ‘11223344’, ‘Alajuela’, ‘88556622’, ‘alexander@ulatina.net’, ‘Bachillerato’, ‘Ing. Sistemas’, ‘5’, ‘Casa 55226633’, », », », ‘0’),
    (‘Angelo’, ‘Delgado’, ‘123456789’, ‘Alajuela ‘, ‘88552233’, ‘angelo@gmail.com’, ‘Licenciatura’, ‘Ing. Industrial’, ‘4’, ‘Casa 2222 8855’, », », », ‘0’),
    (‘Eduardo’, ‘Ortega’, ‘125487615’, ‘Heredia ‘, ‘88776655’, ‘eduardo@ulatina.net’, ‘Licenciatura’, ‘Ing. Sistemas’, ‘0’, ‘Casa 22334455’, », », », ‘0’),
    (‘Jose’, ‘Naranjo’, ‘154422612’, ‘Heredia’, ‘88776655’, ‘josenaranjo@ulatina.net’, ‘Doctorado’, ‘Ing. Electronica’, ‘0’, ‘Casa 22445566’, », », », ‘0’),
    (‘Julian’, ‘Garro’, ‘4651321’, ‘En algun lugar de Heredia’, ‘86451637’, ‘julian@hotmail.com’, ‘Maestría’, ‘Ing. Electronica’, ‘0’, ‘Ya es licenciado’, ‘0’, ‘0’, ‘0’, ‘0’),
    (‘Alejandro’, ‘Piñeiro’, ‘75123464’, ‘Grecia’, ‘66554411’, ‘alejandropiñeiro@gmail.com’, ‘Bachillerato’, ‘Ing. Civil’, ‘0’, ‘Ninguna’, ‘0’, ‘0’, ‘0’, ‘0’),
    (‘Jansser’, ‘Cerdas’, ‘7894512’, ‘Atenas, Alajuela’, ‘12345678’, ‘jansser@gmail.com’, ‘Licenciatura’, ‘Ing. Civil’, ‘2’, ‘Ya va a ser licenciado el wey’, ‘0’, ‘0’, ‘0’, ‘0’),
    (‘Jason’, ‘Arias’, ‘8754132’, ‘Heredia’, ‘88996655’, ‘jasonarias@gmail.com’, ‘Bachillerato’, ‘Ing. Industrial’, ‘4’, ‘Ninguna’, ‘0’, ‘0’, ‘0’, ‘0’);
    COMMIT;

    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

    1. Hola Alberto. Gracias por tu comentario.
      Tu caso es sencillo. Te sobra la primera línea: T SQL_MODE = “NO_AUTO_VALUE_ON_ZERO”, ya que eso no es parte de una sentencia SQL, sino más bien un parámetro de configuración. La sentencia SQL que debes importar empieza en la línea «CREATE TABLE….». Todo lo anterior son parámetros.
      Espero haberte ayudado.
      Saludos.

  6. Mi solución fue al momento de exportar el archivo sql fue desactivar los comentarios, al momento de importar ese archivo desde una version superior de phpmyadmin no tuve ningún problema.

    1. Hola Manuel. Gracias por tu comentario.
      Como bien dices, a veces exportar más de lo que se debe puede complicar las cosas, sobre todo en cuanto al tema de los comentarios se refiere, ya que suelen tener caracteres raros. Pero bueno, con un pequeño control sobre la codificación no debería haber problemas.
      Gracias por aportar tu solución. Espero que también le sirva a más personas.
      Saludos.

  7. Que tal Oscar!!
    Buenas tardes yo tengo un caso muy complicado tenia una instalacion con error desde el principio en el codigo raiz y para no hacerle perder el tiempo finalmente tuve que desinstalarla y reinstalar una version nueva sin error antes de eso hice tanto los respaldos parciales y el total de mi informacion y se hicieron como deben de hacere y aun los tengo almacenados ya que la instalacion nueva quedo y subir las bases de datos y estas fueron subidas de forma exitosa pues asumi que debian de ser visibles los archivos contenidos en el y no subio nada todo permanece igual.

    Este proceso lo.hice desde el portal de Cpanel a traves de phpMyAdmin y del opencart/admin obteniend el mismo resultado

    Las bases de datos fueron creadas en Enero, febrero y Marzo del año en cursó

    1. Hola David. Gracias por tu comentario.
      La verdad es que no llego a detectar si al final lo has solucionado o no. Habría que ver qué errores en concreto te aparecen para tratar de dar con el problema.
      Saludos.

  8. No puedo utiliza ‘este comando
    LOAD DATA LOCAL INFILE «C:\\datos\\listota6m.txt» INTO TABLE listita;
    en MySQL 8
    me indica que no se puede utilizar este comando en esta versión
    como lo puedo solucionar.

    1. Hola Javier.
      Gracias por tu comentario. Seguramente lo que te está pasando es que tu versión de MySQL o de phpMyAdmin no sea compatible con el comando que estás tratando de utilizar. La mayoría de las veces, el mensaje de error que ofrece la consola es bastante clarificador.
      Saludos.

  9. Hola, me puedes ayudar?, porfavor

    tengo este código mysql generado de Mysql Workbench.

    — MySQL Workbench Forward Engineering

    SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
    SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
    SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=’ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION’;

    — —————————————————–
    — Schema Insumos/Equipos
    — —————————————————–

    — —————————————————–
    — Schema Insumos/Equipos
    — —————————————————–
    CREATE SCHEMA IF NOT EXISTS `Insumos/Equipos` DEFAULT CHARACTER SET utf8 ;
    USE `Insumos/Equipos` ;

    — —————————————————–
    — Table `Insumos/Equipos`.`proveedor`
    — —————————————————–
    CREATE TABLE IF NOT EXISTS `Insumos/Equipos`.`proveedor` (
    `idproveedor` INT NOT NULL AUTO_INCREMENT,
    `empresa` VARCHAR(70) NOT NULL,
    `telefono` VARCHAR(15) NULL,
    `correo` VARCHAR(50) NULL,
    `direccion` VARCHAR(70) NOT NULL,
    `sucursal` VARCHAR(20) NOT NULL,
    PRIMARY KEY (`idproveedor`),
    UNIQUE INDEX `idproveedor_UNIQUE` (`idproveedor` ASC) VISIBLE)
    ENGINE = InnoDB;

    — —————————————————–
    — Table `Insumos/Equipos`.`contacto_proveedor`
    — —————————————————–
    CREATE TABLE IF NOT EXISTS `Insumos/Equipos`.`contacto_proveedor` (
    `idcontacto_proveedor` INT NOT NULL AUTO_INCREMENT,
    `proveedor_idproveedor` INT NOT NULL,
    `nombre` VARCHAR(50) NOT NULL,
    `telefono` VARCHAR(20) NOT NULL,
    `correo` VARCHAR(45) NULL,
    `sucursal` VARCHAR(75) NULL,
    PRIMARY KEY (`idcontacto_proveedor`),
    UNIQUE INDEX `idcontacto_proveedor_UNIQUE` (`idcontacto_proveedor` ASC) VISIBLE,
    INDEX `fk_contacto_proveedor_proveedor_idx` (`proveedor_idproveedor` ASC) VISIBLE,
    CONSTRAINT `fk_contacto_proveedor_proveedor`
    FOREIGN KEY (`proveedor_idproveedor`)
    REFERENCES `Insumos/Equipos`.`proveedor` (`idproveedor`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
    ENGINE = InnoDB;

    SET SQL_MODE=@OLD_SQL_MODE;
    SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
    SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

    pero al subirlo a phpmyadmin , me marca este error

    Error
    Análisis estático:

    Se encontraron 1 errores durante el análisis.

    Se esperaba una coma o un corchete de cierre. (near «VISIBLE» at position 509)
    consulta SQL:

    — —————————————————– — Table `Insumos/Equipos`.`proveedor` — —————————————————– CREATE TABLE IF NOT EXISTS `Insumos/Equipos`.`proveedor` ( `idproveedor` INT NOT NULL AUTO_INCREMENT, `empresa` VARCHAR(70) NOT NULL, `telefono` VARCHAR(15) NULL, `correo` VARCHAR(50) NULL, `direccion` VARCHAR(70) NOT NULL, `sucursal` VARCHAR(20) NOT NULL, PRIMARY KEY (`idproveedor`), UNIQUE INDEX `idproveedor_UNIQUE` (`idproveedor` ASC) VISIBLE) ENGINE = InnoDB

    MySQL ha dicho: Documentación

    #1064 – Algo está equivocado en su sintax cerca ‘)
    ENGINE = InnoDB’ en la linea 12

    soy nueva en esto de Base de Datos y apenas estoy aprendiendo.

    Saludos y gracias

    1. Hola Alejandra.

      En tu caso el error parece sencillo de corregir: tu sentencia no es correcta, te falta una coma, un paréntesis o un corchete de cierre. Revisa bien toda la sentencia SQL. Asegúrate también que no un salto de línea o retorno de carro en tu sentencia, que suele colarse muchas veces.

      Un saludo.

  10. Hola Oscar te felicito por el tutorial me parecio excelente y de gran ayuda, me surge una que te queria consultar, despues que selecciono «Convertir en UTF8» guardo el archivo como una copia y lo comparo con el anterior, el que abri, y no encuentro diferencias entre ambos, es decir esa opcion no altera el contenido del archivo SQL ? Donde estaria «marcado» digamos que tenga otra codificacion

    1. Hola Iván, gracias por tus palabras.

      Sobre lo que comentas, la diferencia no se ve a simple vista en el contenido del fichero. Es a nivel interno y de codificación. Así como, por ejemplo, cuando abres un documento PDF con adobe reader sólo ves el contenido del PDF, todo lo demás (que es mucho: vectores, tipo de letra, posiciones, codificación, etc.) no se ve. Con los ficheros de texto, aunque sólo sea texto, pasa lo mismo.

      Saludos.

  11. Hola, en primer lugar quiero felicitarte por el Blog, muy buen artículo.
    Yo tengo un problema algo peculiar. Tengo una aplicación web que ataca a una BD MySql, he cambiado la versión del servidor MySql, exportando los datos e importándolos de nuevo en la nueva versión, hasta aquí todo correcto. El problema viene cuando el IIS hace consultas al nuevo servidor, parece que las corta en 1024, no estoy seguro, pero creo que eso es lo que le pasa. Tengo varios procesos que consultan y devuelve un error de tiempo máximo consumido, esto es porque sobrepasa el tiempo máximo de una consulta. En mi caso este tiempo son 300 segundos. Y la consulta original tarda un par de segundos o menos. En la traza que realicé puedo coger la consulta que envío al servidor y la puedo ejecutar directamente en el servidor MySql y no existe fallo en la creación de la consulta, pero cuando la observo en el WorkBench, parece que está truncada y estas condiciones que faltan en el ‘where’ son las que hacen que la consulta tarde mucho. No sé si me explico. He modificado el fichero de configuración del servidor «my.ini» añadiendo variables del tipo:
    max_allowed_packet=32M
    max_digest_length=10240
    performance_schema_max_digest_length=10240
    performance_schema_max_sql_text_length=10240

    …Pero no consigo saber lo que pasa, ¿alguien me puede ayudar por favor?

    1. Hola Vicente.

      Aumentar las variables el fichero «my.ini» es importante para consultas largas. Eso lo has hecho bien. Pero también tendrás que tocar el fichero php.ini del mismo modo. Si tu sentencia SQL es muy larga, te recomiendo que la optimizes utilizando SELECTS anidados (INNER JOIN), ya que son más rápidos que un montón de condicionales WHERE, si es que tu caso.

      Saludos.

  12. hola oscar mira me encuentro con este problema a la hora de subir la web
    #1064 – Algo está equivocado en su sintax cerca ‘Rar!’ en la linea 1
    y no entiendo el porque me sale si tengo la carpeta en en sql.zip si me podrian ayudar lo agradeceria ya que me rompo la cabeza y me sigue salindo lo mismo
    gracias
    un cordial saludo

    1. Hola Alberto.

      Los mensajes de error muchas veces nos dan una pista del fallo que estamos comentiendo. En tu caso, comprueba bien el fichero que subes. A veces, aunque veamos que el fichero tiene extensión zip o rar, puede ser que hayamos usado el programa de compresión no adecuado. Si el fichero .sql no ocupa mucho, te sugiero que lo subas tal cual, sin comprimir.

      Un saludo.

  13. Hola Oscar, tengo una duda quiero importar mi CVS al phpmysql pero la ñ, á, ‘,ä, estos caracteres especiales no aparecen o no son traducidos como son y está en utf8 no se que puedo hacer para que me reconozca dichos caracteres gracias por tu respuesta.

    1. Hola, gracias por tu comentario.

      Mi recomendación es que pases tu archivo CSV a un TXT con UTF-8. De aquella seguro que lo consigues si sigues las indicaciones de mi artículo.

      Un cordial saludo.

  14. Hola Oscar buenas tardes,
    He visto tus publicaciones y me parecen excelentes, quiero comentarte mi caso, haber si me puedes dar una pista, te comento que soy programador ABAP del software SAP, estoy generando unas interfaces, he creado ya mi XML, para realizar el esquema, lo hice por la transacción XLST_TOOL y por medio de un programa llamo dicho esquema, mi programa recopila información de la base de datos de materiales, genera el XML con la transacción TRANSFORMATION y todo bien, lo veo a traves de un comando de visualización y tiene el encoding UTF-8, pero cuando lo paso a tipo de tabla estándar para poder hacer el envio a una carpeta de mi PC, me lo cambia a utf-16 y no he podido localizar alguna herramienta o comando en ABAP que me permita hacerlo sin que cambie por tal motivo cuando lo veo por la utilería notepad++ me muestra utf-16 y no sube al software que espera un formato diferente, será que me puedas brindar alguna ayuda?

    Saludos cordiales,
    Arturo Chávez

    1. Hola Arturo, gracias por tu comentario.

      La verdad es que suena todo un poco raro, ya que no controlo nada sobre ABAP. Siento no poder ayudarte.

      Un cordial saludo.

  15. Hola, gracias por la ayuda a la comunidad, te expongo mi problema, cambié en phpadmin, cotejamiento de la conexion al servidor de utf8mb4_unicode_ci a utf8_general_ci y me salio error y peor aún, ahora phpadmin no me deja volver atrás, para por último dejarlo sin error, al parecer no me causa problema en la ejecución de la web, pero obviamente no es la idea de ir destruyendo el sistema……gracias

    1. Hola Marco, gracias por tu comentario.

      Por mi experiencia, a veces no sólo basta con cambiar el cotejamiento en la base de datos, sino también en la tabla y hasta en cada campo. Prueba con eso. Si no te funciona, a veces es recomendable crear una nueva base de datos y volcar todo con el cotejamiento ya establecido desde el principio.

      Un cordial saludo.

  16. Me leí el tutorial pero por desgracia mi problema es más extravagante.Tengo un servidor con ubuntu server que corre una versión de Moodle (Moodle 3, Php5.6, mysql y apache2). Mi problema es que uso una base de datos externa (en MSSQL) para identificar al usuario. Esta parte lo hace bien pero al traerse el nombre omite la Ñ y los acentos los cambia por el caracter en mayúsculas. Ya revise lo siguiente: Que las locale de Ubuntu estén en Español, que a nivel de tabla y columna el collate está en utf8mb4 (utf8mb4-unicode-ci, exactamente), que apache no tenga un DefaultCharset definido. Finalmente me di cuenta que mysql no guarda la Ñ. Me conecto por terminal e inserto una Ñ en cualquier caracter pero no lo muestra. No dispongo de algun cliente grafico, como pphpmyadmin o webmin, para validar si ese mismo comportamiento se presenta en una interfaz grafica. Creo que el problema radica en ello, porque he modificado nombres (desde Moodle) y en la pagina web si se despliegan los caracteres. Y alli me encuentro. Alguna ida?

    1. Hola Isidro. Gracias por tu comentario.

      Lamentablemente no soy un experto en Ubuntu ni tampoco en sistemas Linux. Según tengo entendido puede ser tema del sistema operativo, pero tampoco te puede decir.

      Un cordial saludo.

  17. Hola! veo que ayudas a muchos con problemas sobre MySQL y me he animado a plantear mi error

    Tengo un programa punto de venta que trabaja con mySQL y estoy tratando de migrar mi información a otra computadora.

    He probado en varias maquinas virtuales Windows 64 bits y me funciona bien el programa me carga y me deja trabajar; Pero en mi PC real, nada mas no logro hacerlo, ya me cansé de buscar llevo 2 días jaja. Cambié la versión del mySQL y del conector OBDC a Win 64 porque pensé que ese era el problema, ya hice todos los pasos, aparentemente hago los MISMOS pasos en mis 2 maquinas que tienen similar sistema operativo y todo, pero en una no me logra importar sin errores la base de datos, pero no entiendo porque siendo un entorno similar no me deja hacerlo, el error que me arroja es el siguiente:

    No se pudo conectar: error al conectar con servidor. la entrada no es una cadena base 64 válida porque contiene un carácter que no es base 64, mas de dos caracteres de relleno o un carácter de relleno que no es un espacio en blanco

    Que solución crees que se le pueda dar???
    Desde ya gracias

    1. Hola Julio, gracias por tu comentario.

      Sobre tu caso concreto, es posible que sea una versión diferente de MySql o de Apache en tu máquina local. O la configuración de los ficheros «.ini». O también puede ser que esté configurado que al saltar cualquier error se pare el proceso, situación que se puede obviar para errores vanales que no influyen en los datos. La verdad es que sin saber más me resulta difícil darte alguna opción más. Espero haberte ayudado por lo menos a descartar alguna opción.

      Gracias de nuevo y un saludo.

    1. Hola Víctor, gracias por tu comentario.

      Es raro lo que te pasa. Asegúrate que el fichero sql no está protegido contra escritura o que esté siendo usado o esté abierto por otro programa.

      Un saludo.

  18. buenas tardes oscar, muy bueno el tuto, solucione lo de las ñ y los acentos pero al crear un array si hay alguna ñ o acento no me devuelve valores

    $conexion = mysqli_connect($server, $user, $pass,$bd);

    $sql = «SELECT * FROM votaciones WHERE idtel = ‘$idtel'»;

    $result = $conexion->query($sql);

    if ($result->num_rows > 0) {

    while($row[] = $result->fetch_assoc()) {

    $json = json_encode($row);

    }
    } else {
    echo «0 results»;
    }
    echo $json;
    $conexion->close();

    podras orientarme por favor, mis bases estan en utf8_general_ci al igual que las columnas de esta tabla

    gracias de antemano

    1. Hola Alberto. Gracias por tu comentario. Me alegro que el artículo te sirviese para solucionar tu problema.

      Sobre lo que comentas, pueden ser dos cosas: 1) asegúrate que el fichero PHP tiene la codificación UTF-8; y 2) que tanto la conexión a la base de datos como las funciones json también usan UTF-8.

      Un cordial saludo.

    1. Hola Luiso.

      Gracias por tu comentario. Me satisface haberte sido de ayuda este artículo que escribí.

      Un cordial saludo.

  19. Buenas tardes Óscar, ante todo felicitarte por el contenido de calidad que tienes a bien compartir en tu blog. He probado y reprobado diferentes opciones de solución para el error «#1064» al momento de importar una base de datos MySQL y no le encuentro la «tecla» al problema. He cambiado sintaxis y el formato de codificaciones… te adjunto un captura de pantalla al respecto: https://image.ibb.co/miF9vy/2018_05_31_mysql.jpg

    Estoy realizando la importación desde un servidor a otro, la base de datos es de un sitio web hecho en wordpress, al no tener mucha información, estoy «ad portas» de volver a crear todo ya que esto del MySQL me esta quitando un tiempo no pensado, creo que la exportación desde el otro servidor puede haber estado dañada, es la primera vez que se me presenta este impase, anteriormente lo solucione en otro proyecto con el cambio general a «utf-8», pero ahora nada de nada.

    Te puedo compartir la base de datos en privado si por ahí tienes un tiempo libre.

    Gracias, saludos cordiales.

    1. Hola José, gracias por tu comentario.

      La imagen que me mandas con tu error no me ofrece mucha información, pero creo que el error está en el llamamiento de la sentencia SQL. ¿La ejecutas directamente en phpMyAdmin o a través de algún script en PHP? Cosas que se me ocurren: según la versión y la sentencia, a veces la BD destino tiene que estar ya creada, aunque vacía (sin tablas); la codificación de ambas BD debe ser igual.

      Si quieres, puedes compartirme tanto BD origen como BD destino para probar yo a ver qué ocurre.

      Un cordial saludo.

      1. Hola Óscar, lo ejecuto directamente en phpMyAdmin, pero ya pude solucionar el inconveniente de forma inesperada… buscando en unos foros en inglés, probé algo tan simple como agregar una línea en blanco en la fila 1 del código, arriba de los comentarios y listo, lo guarde y al importarlo nuevamente ya no tuve problemas.

        Estoy adjuntando una captura de pantalla (https://image.ibb.co/f0diiT/2018_06_06_mysql.jpg) al respecto para compartirla con otros usuarios a los que quizás les pueda servir.

        También leí que luego de agregar la línea en blanco, puede surgir en algunos casos, un error referente al «SET time_zone», el cuál se solucionaría colocando la información correspondiente al servidor. A mi no se me presento ese error, pero fue un detalle interesante a considerar por algunos usuarios de EU y Europa.

        Saludos.

        1. Hola José, gracias por tu comentario.
          La verdad es que me parece sorprendente que algo tan raro como añadir una linea en blanco al principio del fichero haya sido la solución. Esto me hace pensar que en materia de programación sabemos mucho pero también sabemos poco. ¡Qué misterio! Bueno, me alegro que encontrases solución a tu problema. Muchas gracias por tu aportación de información extra.
          Un cordial saludo.

  20. Cuando quiero crear una base de datos en el Host Local

    Esta opcion funciona
    $cfg_db_sql = ‘CREATE DATABASE ‘.$cfg_nombre.’ DEFAULT CHARACTER SET latin1 COLLATE latin1_spanish_ci’ ;

    Esta opcion NO funciona
    $cfg_db_sql = ‘CREATE DATABASE ‘.$cfg_nombre.’ DEFAULT CHARACTER SET latin1 COLLATE utf8_general_ci’ ;

    1. Hola Nando, gracias por tu comentario.

      Cuando ejecutas la sentencia SQL, ¿estás seguro de que esta en ejecución en local tanto el servidor apache como el SQL? Si es así, el siguiente paso es ver si la versión de MySQL es la misma. De todas formas, no debería fallar, ya que la instrucción SQL es similar. ¿Qué error te da, me lo puedes poner? Es importante que me pongáis en vuestros comentarios el error que os da para saber de qué se queja el sistema, así os podré ayudar mejor.

      Un cordial saludo.

  21. Hola Oscar tengo un problema al importar datos de excel a mysql worckbench solo me reconoce una parte de la base de datos no se logra pasar toda la base de datos del excel como podria solucionarlo GRACIAS

    1. Hola, gracias por tu comentario.

      Los motivos pueden ser varios: el fichero es muy grande, el servidor espera poco tiempo, base de datos de destino diferente a la de origen, errores en la sentencia SQL, datos a importar con caracteres inválidos, etc. Si me puedes indicar el mensaje de error que te arroja el sistema quizás te pueda concretar más.

      Un cordial saludo.

  22. Hola

    Buenas Tardes:
    tengo un problema al importar el archivo .csv ya que al tratar de importarlo comienza el proceso pero al final no carga ningún registro, no hay pantalla de error ni nada, ya he revisado que cada campo tenga el tipo de dato correspondiente; espero me puedo apoyar.

    1. Hola Janeth, gracias por tu comentario.

      Una causa probable de esto que te pasa puede estar en el tiempo de espera del servidor. Por defecto, el servidor espera un tiempo a que el fichero SQL se suba y luego se procese. Si el fichero pesa mucho, tarda más en procesarse y si el tiempo de espera es inferior al tiempo que necesita el fichero para procesarse el sistema no lo termina de procesar. Busca en Google como aumentar el tiempo de espera de phpMyAdmin y encontrarás cómo hacerlo. Espero que con esto se pueda resolver tu problema.

      Un cordial saludo.

  23. Hice lo que se muestra en el tutorial, pero me sigue marcando el mismo error.
    que mas podría ser?

    1. Hola Cristian.

      Gracias por tu comentario. ¿Puedes pegarme aquí el mensaje de error que te da? Así podré ayudarte mejor.

      Un saludo.

  24. Hola que tal Oscar, yo tengo el siguiente problema:

    Instalando: Error: A database query has failed. Is the entered database information correct? Does the account have available disk space? type = mysql host = localhost database = Guajiro username = beg-admin password = **HIDDEN** Technical information: method = query errstr = MYSQL ERROR 1146: Table ‘Guajiro.users’ doesn’t existSELECT u.`ID` FROM `users` u, `usermeta` m WHERE u.`ID`=m.`user_id` AND m.`meta_key`=’user_level’ AND m.`meta_value`=10 ORDER BY u.`ID` ASC LIMIT 1

    Alguien podría ayudarme en esto? Me estoy rompiendo la cabeza en encontrar una solución, no se si la que tu mencionas pueda funcionar! de igual forma lo voy a intentar. Gracias, quedo en la espera de sus comentarios.

    1. Hola Lucy, gracias por tu comentario.

      El error que te da es que esa sentencia SQL no es correcta. Se queja de que la tabla «users» no existe porque en la sentencia SQL no se define, ya que te falta el parámetro AS. La sentencia SQL no sabe cual es la tabla «u» ni la tabla «m» que pones en la sentencia. Debes ponerlo así: SELECT u.`ID` FROM `users` AS u, `usermeta` AS m…

      Espero que esto te ayude a construir bien tu sentencia SQL.

      Un saludo.

    2. Muchas gracias por tu apoyo Óscar, ya revise lo que me recomendaste pero me sigue apareciendo esto:
      mysql database connection failed:
      host = localhost
      database = Guajiro
      username = beg-admin
      password = **HIDDEN**
      errstr = Could not connect to `localhost` using the username `beg-admin` and password **HIDDEN** (mysql) —

      Ya revise mi usuari y contraseña y esta bien, no se por que me sigue marcando un error 🙁 sabes a que se debe?

      1. Hola Lucy.

        Ese nuevo error que me comentas es un error de acceso por usuario o contraseña incorrectos. No cabe otra posibilidad. Revisa bien. A veces al usar el copy/paste nos llevamos espacios en blanco (es sólo una idea).

        Un saludo.

    1. Hola Dario. Gracias por tu comentario.

      Este error suele salir cuando intentas importar una base de datos origen con una versión de MySQL diferente a la base de datos destino. Para solucionarlo, debes volver a exportar la base de datos origen mediante el método de exportación personalizado eligiendo después la versión correcta de MySQL en la opción «Sistema de base de datos o versión antigua de servidor MySQL con la que maximizar la compatibilidad de la salida.» Con esto le estarás diciendo que la base origen sea compatible para después importarla en la base destino.

      Espero que te sirva de ayuda.

      Un cordial saludo.

  25. Por si a alguien le ayuda, yo tenía el siguiente error:

    Análisis estático:

    Se encontraron 2 errores durante el análisis.

    1.Comienzo inesperado de declaración. (near «phpMyAdmin» at position 0)
    2.Tipo de declaración desconocida. (near «SQL» at position 11)
    consulta SQL:

    phpMyAdmin SQL Dump SET SQL_MODE = «NO_AUTO_VALUE_ON_ZERO»

    MySQL ha dicho: Documentación

    #1064 – 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 ‘phpMyAdmin SQL Dump

    SET SQL_MODE = «NO_AUTO_VALUE_ON_ZERO»‘ at line 1

    Oscar resolvió mi problema diciéndome lo siguiente: «Creo que el problema es que el fichero que estás importando lleva más cosas que simples sentencias SQL para crear la base de datos. Eso que pone de phpMyAdmin SQL Dump SET SQL_MODE = «NO_AUTO_VALUE_ON_ZERO no es una sentencia SQL, sino un comando LINUX para importar bases de datos mediante consola. Y eso phpMyAdmin no lo entiende.

    Tienes que editar ese fichero que importas y dejar sólo las sentencias SQL, que es lo que entiende phpMyAdmin. Si puedes volver a generar el fichero, controla que sólo exporte sentencias SQL».

    Espero que también os ayude a vosotros este comentario.

    Un saludo a todos y gracias de nuevo, Oscar.

    1. Hola Carlos.

      Gracias por aportar aquí la solución que te envié de forma privada. Me satisface poder haberte ayudado a resolver tu problema.

      Un cordial saludo.

  26. Excelente articulo Oscar,

    He seguido todos los pasos que indicas pero al importar la base de datos me sigue dando este error.

    phpMyAdmin – Error
    Incorrect format parameter

    Gracias!!

    1. Hola. Gracias por tu comentario y tu valoración.

      Sobre tu problema, necesitaría más información. Tiene pinta de ser un error en la instrucción SQL o en la forma de proceder con la importación. Fíjate que el mensaje que te arroja es sobre el formato.

      Un cordial saludo.

      1. Hola Óscar,
        Después de darle muchas vueltas sin conseguir resultados lo he echo con el plugin All-in-One WP Migration.
        Quería migrar una web manualmente pero se me complicó lo de la base de datos.

        Muchas gracias por tu tiempo.

        1. Hola,

          Me alegra saber que ya resolviste tu problema.

          Gracias de nuevo y un cordial saludo.

  27. Oscar, tengo una conexión PDO odbc a una .mdb, y cuando hago SELECT me trae los caracteres especiales como �…???

    $cnctPDO = new PDO(«odbc:Driver={Microsoft Access Driver (*.mdb)}; DBq=$filePath; Uid=; Pwd=; charset=UTF-8»);
    $sqlPDO01 = «SELECT * FROM myTable»;
    $cnsltPDO01 = $cnctPDO->query($sqlPDO01);

    como te comento los datos de la consulta están correctos en la base de datos .mdb, pero los trae mal codificados.

    Gracias

    1. Hola José Antonio, gracias por tu comentario.

      Como bien dices, el problema está en la codificación de la conexión PDO. Revisa bien la instalación del plugin. Revisa que al principio de tu fichero PHP del que has pegado estas líneas de código tenga esta línea (si no está, añádela):

      header(‘Content-Type: text/html; charset=utf-8’);

      Prueba a ver con esto.

      Un saludo.

  28. Hola Óscar gracias por el post. Sigo todos los pasos pero siempre me aparece «La conexión ha sido reiniciada». Tras unos minutos no se importa nada a la BD. No tengo ningún error en logs php ni nginx, el fichero es de 9MB y admite 128MB, he subido los tiempos en Nginx y php.ini a 2, 4, 6min, pero nada. El cotejamiento de la BD original era utf8_unicode_ci. Al convertir con Notepad a UTF-8 como indicas no se me estropean los acentos a hexa, siguen igual, porque en la barra de estado se pasa de UTF-8 a UTF-8-BOM. ¿Alguna idea? Gracias.

    1. Bueno, conseguí arreglarlo, por si a alguien le sirve: abrir el fichero en Linux-Ubuntu «/usr/share/phpmyadmin/config.inc.php» y modificar
      $cfg[‘UploadDir’] = »;
      La ruta por defecto viene vacía, hay que poner una con el directorio donde se cargan los archivos SQL por otros medios que no sean phpMyAdmin (por ejemplo, ftp). Esos archivos son los que están disponibles en el cuadro desplegable al hacer clic en la base de datos o en el nombre de la tabla, luego en la pestaña Importar.
      Para que los pueda procesar PhpMyAdmin la carpeta y archivos deben ser accesibles por el usuario del proceso PHP (www-data) con permisos de propietario o grupo.
      Ej:
      $cfg[‘UploadDir’] = ‘/home/miuser/uploads/’;
      Grabar, reiniciar servicios php y nginx y probar.

      1. Hola Enrique.

        Gracias por tu comentario y por contarnos tu experiencia y solución a tu problema. En tu caso, era un problema de configuracón del phpMyAdmin en tu S.O.

        Un saludo.

    1. Hola Carlos. Gracias por tu comentario.

      Tu problema es con la fuente de datos del WIDGET, que no tendrá la misma codificación. Es decir, la web o aplicación que genera el RSS no está en UTF-8.

      Un saludo.

  29. Hola una pregunta
    Cuando realizo una consulta de los datos de mi base me salen las palabras con tilde así: �
    He realizado las soluciones que publican algunas paginas y no he podido solucionar el problema, usted que método me podría recomendar o alguna solución que tuviera, me seria de mucha ayuda, gracias y saludos.

    1. Hola Johnny, gracias por dejar tu comentario.

      Tienes que mirar si el fichero que intentas importar ya viene así con los datos. Eso significa que, a lo mejor, se exportó con otra codificación diferente a la UTF-8. En este caso, te recomiendo que vuelvas a exportar la base de datos con la codificación correcta. Otro sitio donde puedes mirar en si la base de datos donde importas el fichero está codificado también en UTF-8. A veces este pequeño detalle se nos pasa. Para lo demás, con lo que se comenta en el artículo debería ser suficiente.

      Si aún así no lo consigues, estaré encantando de echarte una mano. Ponte en contacto conmigo.

      Un cordial saludo.

  30. Buenas tardes, estoy mirando un sitio web, creo la base de datos, creo el nombre y la contraseña de la base de datos, tambien, importo la base de datos del sitio web,y se carga todo en orden, pero al entrar en la parte de bases de Bases de datos Mysql, me dice que esta en 0.0 de espacio.

    1. Hola Leonardo. Gracias por tu comentario.

      No te preocupes por eso. Si has importado la base de datos y ves que tienes tablas y las tablas tienen datos tras la importación, lo has hecho bien. Lo que pasa es que muchos paneles de hosting no actualizan la información estadística en tiempo real. Sal de tu panel de control y vuelve a entrar pasados unos minutos. Si tampoco, deja pasar 24 horas. Aún con todo no es problema de tú hayas hecho nada mal, si no de tu proveedor de hosting.

      Un cordial saludo.

    1. Hola Misael. Gracias por tu comentario.

      Concretamente, ¿qué error te da? Puede deberse a que halla un error en la instrucción SQL o a que no se halla subido completamente el fichero que estás importando.

      Un saludo.

  31. Hola Oscar, el problema que yo tengo es similar a lo de este post, pero el tamaño de mi base de datos es de 123 MB. Que puedo hacer en este caso porque no puedo solucionarlo. Un saludo!

    1. Hola Rodolfo.

      Gracias por leer el artículo y por tu comentario. Desconozco por qué es un problema para ti que tu base de datos ocupe 123 MB. Se puede configurar el límite de subida máxima de ficheros sin problema.

      Un cordial saludo.

  32. Excelente aportación, muchas gracias por la explicación… en mi caso era un archivo CVS, pero funciono igual con el mismo principio.

    1. Hola Eduardo.

      Muchas Gracias por tu comentario y por leerme.

      Para mi es un placer que mi artículo haya servido para resolver tu problema. Esa es la razón por la cual me propuse a escribirlo.

      Un cordial saludo.

  33. Hola he seguido los pasos pero al importar el archivo sql me sale un nuevo error

    Como lo soluciono

    Análisis estático:

    Se encontraron 2 errores durante el análisis.

    Comienzo inesperado de declaración. (near «phpMyAdmin» at position 0)
    Tipo de declaración desconocida. (near «SQL» at position 11)
    consulta SQL:

    phpMyAdmin SQL Dump SET SQL_MODE = «NO_AUTO_VALUE_ON_ZERO»

    MySQL ha dicho: Documentación

    #1064 – Algo está equivocado en su sintax cerca ‘phpMyAdmin SQL Dump

    SET SQL_MODE = «NO_AUTO_VALUE_ON_ZERO»‘ en la linea 1

    1. Hola Andrea.
      En primer lugar, gracias por tu comentario y por leerme.
      En segundo lugar, y respondiendo a tu consulta, el error que te da es por algún tipo de fallo en la instrucción SQL del archivo a importar. Este puede ser debido por varias causas: la versión de phpMyAdmin, la configuración de la base de datos donde vas a importar los datos (ambas bases de datos, origen y destino, deben ser idénticas) o los propios datos en sí. La verdad es que así a ciegas es un poco complicado detectar el error. Si te parece bien, puedes mandarme el fichero SQL y trato de analizarlo.
      Un cordial saludo.

  34. ESTIMADO OSCAR.
    ACABO DE IMPORTAR UNA BASE DE DATOS EN CONSULTA SQL CON INSERT TO, LOS DATOS SE ARCHIVAN EN LOS CAMPOS MENCIONADOS, Y LOS PUEDO VER DESDE MI SISTEMA DE INTRANET QUE ESTOY DESARROLLANDO… HASTA AHI TODO BIEN .. EL PROBLEMA COMIENZA CUANDO EN EL SISTEMA LLAMO UN DATO ME LO MUESTRA EN PANTALLA, QUIERO RELLENAR DOS CAMPOS QUE ES INICIALES Y SUBIR ACHIVOS ME DICE ERROR AL ACTUALIZAR LA BASE DE DATOS-FILA NO ENCONTRADA, DISTINTO ES CUANDO INGRESO UN NUEVO REGISTRO DESDE LA APLICACION QUE ESTOY DESARROLLANDO, ME GUARDA LOS DATOS Y CUANDO LLAMO AL ULTIMO DATO INGRESADO ESE SI ME DEJA MODIFICAR LAS INICIALES Y SUBIR UN ARCHIVO EN PDF.. ME PUEDES AYUDAR O DAR ALGUN CONCEJO?

    QUEDO ATENTO A TUS COMENTARIOS

    1. Hola Victor Alberto. Gracias por leerme y por tu comentario.

      Sobre tu consulta, por lo que me dices del mensaje que arroja el sistema de «fila no encontrada» seguramente sea porque te falta la instrucción WHERE en tu consulta SQL. Si quieres una atención más directa para tratar de ayudarte, mándame un mensaje a contacto@oscar-dominguez.com y trataremos el tema más profundamente para encontrar solución.

      Un cordial saludo.

  35. hola Oscar tengo un problema cuando quiero exportar la BD sql a phpMyAdmin, me sale este error:
    Error
    SQL query:

    CREATE DATABASE AGENCIADECASTING
    USE AGENCIADECASTING

    CREATE TABLE CANDIDATO (
    CM VARCHAR (10)NOT NULL,
    N VARCHAR (30)NOT NULL,
    D VARCHAR (30)NOT NULL,
    RP CHAR (10)NOT NULL,
    PRIMARY KEY (CM)
    )
    MySQL said: Documentation

    #1064 – You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘USE AGENCIADECASTING

    CREATE TABLE CANDIDATO (
    CM VARCHAR (10)NOT NULL,
    N VA’ at line 2

    1. Hola Franklin. Gracias por contactar. ¿Estás usando la opción «Exportación» que ya viene en phpMyAdmin o esa sentencia la estás ejecutando vía PHP?

        1. Hola Franklin.

          Cuando es el propio phpMyAdmin que falla el problema va más allá. Puede ser una mala instalación o configuración del servidor apache o del propio phpMyAdmin. También puede ser que la base de datos esté corrupta. ¿Lo usas en local o directamente en un servidor de Internet? La verdad es que si verlo me resulta complicado. Si te parece bien, mándame un mensaje a contacto@oscar-dominguez.com con las claves de acceso a tu servidor y ver el problema en real.

          Un saludo.

  36. hola me puedes ayudar?, tengo un problema cuando voy a subir la base de datos para phpmyadmin me da este error
    consulta sql
    table structure for table wp_commentmeta
    DROP Table IF Exists wp_commentmeta
    MYSQL ha dicho
    #1846 – no database selected

    1. Hola. Este error aparece porque no ha seleccionado la base de datos. Es un error muy común al utilizar phpMyAdmin ir directamente a importar. Antes debes entrar en la base de datos, es decir, ver en la ventana central de phpMyAdmin el listado de las tablas. Y una vez allí, importar. De este modo el sistema ya sabe que estás en esa base de datos. Espero haberte sido de ayuda. Saludos!

  37. Hola Óscar Yo he tenido un problema parecido.
    Al intentar migrar la base de datos a otro servidor mes daba este error:
    He creat una base de dades a gitaxi.cat i haig d’importar una base de dades que tinc en un altre servidor.
    Em dona el següent error i no em permet fer-ho.

    Error consulta SQL:

    /*!40101 SET NAMES utf8mb4 */;
    MySQL ha dicho: Documentación

    #1115 – Unknown character set: ‘utf8mb4’

    Luego cambié con notepad ++ utf8mb4 por utf8

    y me da el siguiente error:

    Error
    consulta SQL:


    — Base de datos: `dedisseny_7d2`

    — ——————————————————–

    — Estructura de tabla para la tabla `wp_commentmeta`

    CREATE TABLE `wp_commentmeta` (

    `meta_id` BIGINT( 20 ) UNSIGNED NOT NULL ,
    `comment_id` BIGINT( 20 ) UNSIGNED NOT NULL DEFAULT ‘0’,
    `meta_key` VARCHAR( 255 ) COLLATE utf8_unicode_520_ci DEFAULT NULL ,
    `meta_value` LONGTEXT COLLATE utf8_unicode_520_ci
    ) ENGINE = INNODB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_520_ci;

    MySQL ha dicho: Documentación

    #1273 – Unknown collation: ‘utf8_unicode_520_ci’

    En el Notepad++ ya me sale como utf8 así que no puedo convertir-lo.
    Si me puedes ayudar tal vez pueda dormir esta noche.
    Gracias y felicidades por la web.

    1. Hola Albert. Gracias por tu comentario y por leerme.
      En respuesta a tu problema, asegúrate que tanto la base de datos origen como la base de datos destino tienen la misma codificación. Muchas veces lo que ocurre es que sea crea primero la base de datos destino sólo poniendo el nombre sin preocuparse de la codificación, pensando que luego al importar el fichero .sql se importará todo. Pues no. Se debe establecer también la codificación, siempre siendo igual tanto en la base de datos destino como en la base de datos origen. Digamos que hay que preparar el escenario todo lo bien que se pueda para que luego la importación sea más agil.

      Si te fijas, el MySQL se queja en la codificación «utf8_unicode_520_ci». Esa debe ser la codificación de la base de datos destino. Aún con todo, y hablando ya de condificaciones, yo siempre recomiendo la «utf8_general_ci» para evitar problemas, pues es la común y genérica, y que acepta todos los caracteres.

      Espero haberte arrojado un poco de luz en tu problema para que puedas darle solución. Hazme saber cómo te ha ido. Y si necesitas más ayuda, envíame un privado. Estaré encantado de ayudarte en lo que pueda.

      Un cordial saludo.

  38. Hola,
    ahora lo he hecho con notepad++ y se cambia a utf8 como dices, lo importo y:
    nuevo error:

    #1064 – 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 ‘– phpMyAdmin SQL Dump
    — version 4.6.4
    https://www.phpmyadmin.net/

    -‘ at line 1

    Gracias!!!!!!!!!!!

    1. Hola Elisabet.

      Primero, agradecer tu lectura y comentarios. Ese error que te aparece es porque existe un error en la sentencia SQL, es decir, alguna instrucción mal escrita. Te recomiendo que vuelvas a empezar de nuevo, pues es probable que con tanto cambio de codificación del fichero «.sql» se te hayan sustituidos símbolos o caracteres necesarios. Si te vuelve a ocurrir, puedes mandarme en un ZIP el fichero «.sql» original, y yo probaría a realizar la codificación, devolviéndote el fichero con la codificación correcta. Antes haré pruebas, a veces, el error tienen otro origen. Puedes mandarme el fichero a contacto@oscar-dominguez.com .

      Un cordial saludo.

  39. Hola, me puedes ayudar?
    Antes de nada gracias por compartir tu cabeza.
    Me pasa exactamete lo que dices, y hago lo que recomiendas y me sigue saliendo un error:
    #1273 – Unknown collation: ‘utf8_unicode_520_ci’
    me puedes ayudar?
    Nota: el cambio de los datos los hago en wordpad, remplazando utf8mb4 por el utf8, porque con tu notapad++ no me sale tampoco.
    Gracias!

    1. ahora he lo he hecho con notepad y se cambia ok, pero!!
      nuevo tipo de eror:
      #1064 – 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 ‘– phpMyAdmin SQL Dump
      — version 4.6.4
      https://www.phpmyadmin.net/

      -‘ at line 1
      ¿??¿?¿?¿

  40. Saludos,
    Este articulo tiene razón, las personas de MySQL no creo que no se hayan percatado de este punto tan utilizado como es la importación y la exportación, con la herramienta NotePad ++ se soluciona este inconveniente, solo deben de buscar el código utf8mb4 y cambiarlo por el utf8 y listo.
    Gracias Oscar por la información.

    1. Gracias a ti José por tu comentario. Mi larga experiencia en estos temas me dice que este problema aparentemente complejo es más sencillo de lo que parece. Y lo mejor es que funciona en el 100% de los casos. Me satisface saber que sirve a la gente a resolver su problema. Saludos.

  41. Gracias campeon …me estaba ropiendo la cabeza, gracias por la información ….Dios te bendigas
    Saludos

    1. De nada. Me alegro que te haya servido de ayuda. La verdad es que era más sencillo de lo que parecía, ¿verdad? Gracias por tu visita.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.