На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Akina
  
> Не получается импортировать БД MySQL из-за ошибки
    Здравствуйте. Не получается импортировать базу через phpmyadmin из-за ее большого размера. Пытаюсь через Админнер. Подскажите что это за ошибка и как ее избежать?
    user posted image
      Так вы же html запихнули вместо sql
      Грубо говоря в данных есть символы перевода строки, которые не были учтены в сгенерированных запросах и потому синтаксис запросов составлен не верно. Из-за этого в качестве запроса идет попытка исполнения этого html текста.
      Сообщение отредактировано: macomics -
        Вы имеете в виду в каких то полях таблиц есть данные с html и поэтому ошибка?
        Если так, то в некоторых таблицах хранятся описания товаров с html тегами.
        Как тогда дамп выгрузить/загрузить?
          Цитата rownong@yandex.ru @
          Как тогда дамп выгрузить/загрузить?

          ChatGPT рекомендуэ :)

          Для экспорта и импорта данных в phpMyAdmin вам потребуется выполнить следующие шаги:

          Экспорт данных:

          1) Войдите в phpMyAdmin.
          2) Выберите базу данных, которую вы хотите экспортировать.
          3) Нажмите на вкладку "Экспорт".
          4) Выберите таблицы, которые вы хотите экспортировать, или оставьте значение по умолчанию для всех таблиц.
          5) Выберите желаемый формат экспорта, например, SQL.
          6) Нажмите "OK", чтобы начать процесс экспорта.

          Импорт данных:

          1) Войдите в phpMyAdmin.
          2) Выберите базу данных, в которую вы хотите импортировать данные.
          3) Нажмите на вкладку "Импорт".
          4) Выберите файл с данными для импорта.
          5) Нажмите "OK", чтобы начать процесс импорта.
            Цитата Majestio @
            Цитата rownong@yandex.ru @
            Как тогда дамп выгрузить/загрузить?

            ChatGPT рекомендуэ :)

            Для экспорта и импорта данных в phpMyAdmin вам потребуется выполнить следующие шаги:

            Экспорт данных:

            1) Войдите в phpMyAdmin.
            2) Выберите базу данных, которую вы хотите экспортировать.
            3) Нажмите на вкладку "Экспорт".
            4) Выберите таблицы, которые вы хотите экспортировать, или оставьте значение по умолчанию для всех таблиц.
            5) Выберите желаемый формат экспорта, например, SQL.
            6) Нажмите "OK", чтобы начать процесс экспорта.

            Импорт данных:

            1) Войдите в phpMyAdmin.
            2) Выберите базу данных, в которую вы хотите импортировать данные.
            3) Нажмите на вкладку "Импорт".
            4) Выберите файл с данными для импорта.
            5) Нажмите "OK", чтобы начать процесс импорта.

            Вы ознакомились с моим первым постом? Там описана проблема и указано почему нельзя сделать так как вы написали.
            Сообщение отредактировано: rownong@yandex.ru -
              Цитата rownong@yandex.ru @
              Вы имеете в виду в каких то полях таблиц есть данные с html и поэтому ошибка?
              Если так, то в некоторых таблицах хранятся описания товаров с html тегами.
              Как тогда дамп выгрузить/загрузить?

              Нет. Я имею ввиду, что при сохранении (формировании запросов) была допущена ошибка в них из-за наличия в данных переносов строк и символов " без экранирования. Это разбило запрос на несколько из-за чего при загрузке в базу происходят ошибки только в определенных из них.

              На картинке видно, что 13779 запросов прошли без ошибок, а только два из 13781 запроса содержат не правильно сформированные данные (из-за формата html или чего-то еще). Они и выдали ошибки. Чтобы не искать строки с ошибками вручную вам выдали в сообщении текст, на котором споткнулся импорт. Просто в текстовом редакторе найдите этот текст и исправьте эти два оставшихся запроса.
              Сообщение отредактировано: macomics -
                Цитата rownong@yandex.ru @
                Вы ознакомились с моим первым постом? Там описана проблема и указано почему нельзя сделать так как вы написали.

                Можно попробовать утилитами из командной строки.

                Бэкап

                ExpandedWrap disabled
                  mysqldump --user=root --password=root --add-drop-database your_db .\backup\your_db.sql


                Восстановление

                ExpandedWrap disabled
                  mysql --user=root --password=root --execute="DROP DATABASE your_db"
                  mysql --user=root --password=root --execute="CREATE DATABASE your_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;"
                  mysql --user=root --password=root --execute="GRANT ALL PRIVILEGES ON your_db.* TO root@localhost IDENTIFIED BY 'root';"
                  mysql --user=root --password=root your_db < your_db.sql

                Второй вариант - найти какого-нить клиента для MySQL, типа Navicat. Там есть свои механизмы дампа БД и восстановления.
                  Цитата rownong@yandex.ru @
                  Не получается импортировать базу через phpmyadmin из-за ее большого размера.

                  С чего Вы так решили?

                  Скриншот показывает, что при создании дампа произошла ошибка, и сам дамп разрушен. Во время создания были успешно созданы и записаны в дамп 13779 запросов, после чего процесс создания привёл к ошибке #2006 - MySQL Server has gone away. Именно сообщение об этой ошибке - причём не само сообщение, а HTML-код отображающей его в клиенте веб-страницы,- записано в файл дампа вместо запроса номер 13780. И при попытке выполнить код веб-страницы сервер ожидаемо этого сделать не может (он умеет только выполнять SQL-запросы), и процесс восстановления ломается.

                  Соответственно надо просто сделать дамп заново. И проследить, что процесс изготовления дампа выполнен без ошибок.

                  Сама же ошибка #2006 - MySQL Server has gone away говорит о том, что при изготовлении дампа программа-дампер обратилась к серверу с запросом, время выполнения которого превысило установленный тайм-аут ответа на запрос.

                  А про размер на скриншоте нет ни полслова.
                  Сообщение отредактировано: Akina -
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0275 ]   [ 15 queries used ]   [ Generated: 21.02.24, 07:42 GMT ]