Меню Рубрики

Mysql windows mysql upgrade

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Как обновиться с MySQL 5 до MySQL 8

Сегодня MySQL 8.0 стала версией доступной для скачивания по умолчанию (предыдущей актуальной версией была MySQL 5.7). Т.е. теперь считается, что это готовая для использования в продакшене версия. Решение проблем, возникавших в процессе обновления, заняло у меня несколько часов – очень надеюсь, что эта заметка поможет вам сэкономить время.

Я обновлял MySQL до версии 8.0 в Windows. Но я вполне допускаю, что аналогичные ошибки будут возникать и в Linux.

Мой веб-сервер и СУБД MySQL установлены по этой инструкции. Если вы устанавливали другим способом, то у вам могут быть другие пути к папкам – учитывайте это.

Бэкап всех баз данных MySQL

Перед тем, как выполнить обновление, обязательно сделайте резервные копии! Файлы баз данных MySQL 5 и MySQL 8 не являются совместимыми в полной мере, и при запуске MySQL 8 происходит автоматическое изменение структуры файлов баз данных. Это означает, что если что-то пойдёт не так и вы захотите просто откатиться до MySQL 5, это может оказаться просто невозможным.

Я делаю бэкапы двумя способами:

  • экспорт всех баз данных в файл;
  • резервная копия файлов, в которых хранятся базы данных.

Экспорт всех баз данных можно сделать прямо в phpMyAdmin, для этого перейдите на главную страницу и выберите вкладку «Экспорт».

Рекомендую НЕ ставить галочку «Добавить выражение DROP DATABASE IF EXISTS», поскольку если файл получится большим, то его придётся импортировать в несколько этапов, а если там будет использоваться конструкция DROP DATABASE IF EXISTS, то при каждом начале импорта будут удаляться ранее принятые записи – т.е. будет невозможно довести операцию до конца.

Можно делать резервные копии и с помощью утилиты mysqldump. Особенности использования mysqldump в Windows:

    не используйте PowerShell, используйте командную строку (в PowerShell не работает перенаправление вывода, обозначаемого символами > и

Зависание MySQL 8 при обращении к некоторым базам данных

Это оказалось главным вызовом, после обновления с MySQL 5.7, в которой всё работало отлично. Зависания происходили и до, и после запуска mysql_upgrade. Достаточно было обратиться к некоторым базам данных, например, попробовать открыть в phpMyAdmin, либо посетить веб-сайт, который её использует.

Не помогало ничего, MySQL 8 зависала наглухо – служба не перезапускалась, помогала только перезагрузка компьютера, причём до первого обращения к проблемной БД.

Если у вас похожая проблема, и вы ещё не сделали резервную копию в виде .sql для импорта, то откатитесь до MySQL 5. В папку C:\Server\data\DB\data\ восстановите из резервной копии файлы старого формата.

После этого экспортируйте все базы данных в файл .sql. Когда этот файл готов, удалите MySQL 5, удалите содержимое C:\Server\data\DB\data\, установите MySQL 8 и инициализируйте её, как это происходит при первой установке:

После этого восстановите из резервной копии (файл .sql) все базы данных.

При таком способе переноса баз данных, проблема с зависанием полностью исчезла.

Восстановление баз данных из резервной копии без phpMyAdmin в Windows

Для экспорта баз данных, phpMyAdmin работает хорошо. Но с импортом возникло ряд проблем. Ниже я покажу, как разрешить все эти ошибки, но намного проще и в разы быстрее сделать импорт без phpMyAdmin и других помощников на PHP скриптах.

Для этого откройте командную строку Windows. Нажмите комбинацию WIN + x, затем выберите Windows PowerShell. Чтобы выйти из PowerShell и перейти в командную строку, выполните:

Затем смените текущую папку:

И запустите команду вида:

Например, моя резервная копия содержится в файле localhost.sql, который размещён в папке C:\Users\Alex\Downloads\, тогда команда выглядит так:

Ошибка phpMyAdmin «Core::fatalError(‘Incorrect format parameter’);»

При попытке импортировать базы данных с помощью phpMyAdmin, у меня всё время возникала ошибка:

Чтобы её исправить, откройте файл C:\Server\data\htdocs\phpmyadmin\​import.php, найдите там строку

Сохраните и закройте файл.

Если я правильно понимаю код, идёт проверка формата файла и если формат не соответствует указанному в списке, то программа останавливает работу. У меня эта проблема была для sql файла, сжатого в zip архив. Возможно, достаточно было добавить в список форматов zip.

Решение проблемы с ошибкой «import.php: Отсутствующий параметр: import_type»

Затем сразу возникла проблема:

Несмотря на суперинформативность ошибки, я разобрался в её причине – до скрипта просто не доходил файл с резервной копией БД. Причина в том, что по умолчанию в PHP установлены очень маленькие значения на максимальный размер выгружаемого на сервер файла, и файла, передаваемого методом POST. На локальном, своём сервере это очень легко исправить. Откройте файл c:\Server\bin\PHP\php.ini, и отредактируйте там следующие директивы:

максимальный размер загружаемого на сервер файла. Изначально установлен очень маленький размер – только два мегабайта. Например, при загрузке базы данных в phpMyAdmin, не получится загрузить файл больше 2 мегабайт до тех пор, пока не будет изменён этот пункт настройки. Мой бэкап был в сотни мегабайт – установите это значение больше, чем размер импортируемого файла.

устанавливает максимальное количество данных, которые будут приняты при отправке методом POST. Аналогично – установите размер больше, чем импортируемый файл.

Другие директивы можно не менять, но при желании вы можете предоставить PHP скриптам дополнительные ресурсы:

устанавливает максимальное количество памяти, которое может использовать скрипт

максимальное количество файлов для загрузки за один раз

максимальное время выполнения одного скрипта

устанавливает кодировку (по умолчанию, строка закомментирована)

Чтобы эти изменения вступили в силу, нужно перезапустить веб-сервер.

Заключение

Это не все ошибки phpMyAdmin: после решения указанных выше проблем, phpMyAdmin стал жаловаться, что в моём бэкапе неверный формат команд. В общем, импортируйте базы данных напрямую в MySQL. Если баз данных много и они большие, по сравнению с phpMyAdmin, скорость импорта будет в разы быстрее.

Итак, резюмируем, для обновления с MySQL 5.* до MySQL 8.*:

  • делаем резервную копию баз данных
  • после установки MySQL 8 запускаем программу для обновления формата файлов
  • если появились зависания или другие проблемы в работе, останавливаем СУБД, удаляем файлы баз данных, инициализируем MySQL, чтобы были созданы дефолтные файлы и импортируем базы данных из резервной копии

Если аналогичные проблемы возникнут на Linux, указанные рецепты также должны помочь.

Если вы только собираетесь установить веб-сервер на Windows, то подробная инструкция здесь.

Если вам нужен отличный хостинг, то он здесь. Я хостю там сайты с 2009 года и с каждый годом люблю этого хостера больше и больше! Объективно лучший хостинг по показателям аптайма и скорости работы. Если вы хотите зарегистрировать домен в любой существующей доменной зоне – на выбор сотни тематических доменных зон.

Потрясающая отзывчивая и профессиональная служба поддержки и бесплатный перенос сайтов – вливайтесь в клуб любителей Hostland.

Связанные статьи:

Рекомендуется Вам:

2 комментария to Как обновиться с MySQL 5 до MySQL 8

«Но через некоторое время, служба всё-таки будет запущена.» — эк как у вас все… через некоторое время… Это когда? И что для этого нужно сделать? У меня вот например не запускается. Хоть с бубном пляши…

Инструкция получилась сумбурной, так как у меня тоже много времени ушло на решение проблем. Почему не запускается, можно посмотреть в файле C:\Server\data\DB\data\*.err

Но я рекомендую пойти другим путём (он здесь уже упоминается, но информация разбросана):

  • экспортировать базу данных с помощью mysqldump в .sql файл
  • остановить и удалить MySQL 5, в том числе файлы баз данных (само-собой, на всякий случай должны быть резервные копии всего)
  • установить чистую MySQL 8 (без обновления предыдущей версии), инициализировать базу данных
  • импортировать .sql файл

Это самый быстрый и самый надёжный вариант. Здесь это написано (правда как я уже сказал сумбурно) — но у меня удалось запустить сервер только таким образом.

Ну или напишите, какие ошибки в C:\Server\data\DB\data\*.err — попробуем разобраться.

А как вы относитесь к MariaDB? Посмотрите информацию о ней здесь. С ней нет таких проблем как с MySQL 8. Сейчас многие перешли на MariaDB взамен MySQL.

Источник

Chapter 2 Upgrading MySQL on Windows

There are two approaches for upgrading MySQL on Windows:

The approach you select depends on how the existing installation was performed. Before proceeding, review Upgrading MySQL for additional information on upgrading MySQL that is not specific to Windows.

Whichever approach you choose, always back up your current MySQL installation before performing an upgrade. See Database Backup Methods.

Upgrades between non-GA releases (or from a non-GA release to a GA release) are not supported. Significant development changes take place in non-GA releases and you may encounter compatibility issues or problems starting the server.

MySQL Installer does not support upgrades between Community releases and Commercial releases. If you require this type of upgrade, perform it using the ZIP archive approach.

Upgrading MySQL with MySQL Installer

Performing an upgrade with MySQL Installer is the best approach when the current server installation was performed with it and the upgrade is within the current release series. MySQL Installer does not support upgrades between release series, such as from 5.7 to 8.0, and it does not provide an upgrade indicator to prompt you to upgrade. For instructions on upgrading between release series, see Upgrading MySQL Using the Windows ZIP Distribution.

To perform an upgrade using MySQL Installer:

Start MySQL Installer.

From the dashboard, click Catalog to download the latest changes to the catalog. The installed server can be upgraded only if the dashboard displays an arrow next to the version number of the server.

Click Upgrade . All products that have a newer version now appear in a list.

MySQL Installer deselects the server upgrade option for milestone releases (Pre-Release) in the same release series. In addition, it displays a warning to indicate that the upgrade is not supported, identifies the risks of continuing, and provides a summary of the steps to perform an upgrade manually. You can reselect server upgrade and proceed at your own risk.

Deselect all but the MySQL server product, unless you intend to upgrade other products at this time, and click Next .

Click Execute to start the download. When the download finishes, click Next to begin the upgrade operation.

Upgrades to MySQL 8.0.16 and higher may show an option to skip the upgrade check and process for system tables. For more information about this option, see Important server upgrade conditions.

Configure the server.

Upgrading MySQL Using the Windows ZIP Distribution

To perform an upgrade using the Windows ZIP archive distribution:

Download the latest Windows ZIP Archive distribution of MySQL from https://dev.mysql.com/downloads/.

If the server is running, stop it. If the server is installed as a service, stop the service with the following command from the command prompt:

Alternatively, use NET STOP mysqld_service_name .

If you are not running the MySQL server as a service, use mysqladmin to stop it. For example, before upgrading from MySQL 5.7 to 8.0, use mysqladmin from MySQL 5.7 as follows:

If the MySQL root user account has a password, invoke mysqladmin with the -p option and enter the password when prompted.

Extract the ZIP archive. You may either overwrite your existing MySQL installation (usually located at C:\mysql ), or install it into a different directory, such as C:\mysql8 . Overwriting the existing installation is recommended.

Restart the server. For example, use the SC START mysqld_service_name or NET START mysqld_service_name command if you run MySQL as a service, or invoke mysqld directly otherwise.

Prior to MySQL 8.0.16, run mysql_upgrade as Administrator to check your tables, attempt to repair them if necessary, and update your grant tables if they have changed so that you can take advantage of any new capabilities. See mysql_upgrade — Check and Upgrade MySQL Tables. As of MySQL 8.0.16, this step is not required, as the server performs all tasks previously handled by mysql_upgrade .

Источник

Mysql windows mysql upgrade

There are two approaches for upgrading MySQL on Windows:

The approach you select depends on how the existing installation was performed. Before proceeding, review Section 2.11, “Upgrading MySQL” for additional information on upgrading MySQL that is not specific to Windows.

Whichever approach you choose, always back up your current MySQL installation before performing an upgrade. See Section 7.2, “Database Backup Methods”.

Upgrades between non-GA releases (or from a non-GA release to a GA release) are not supported. Significant development changes take place in non-GA releases and you may encounter compatibility issues or problems starting the server.

MySQL Installer does not support upgrades between Community releases and Commercial releases. If you require this type of upgrade, perform it using the ZIP archive approach.

Upgrading MySQL with MySQL Installer

Performing an upgrade with MySQL Installer is the best approach when the current server installation was performed with it and the upgrade is within the current release series. MySQL Installer does not support upgrades between release series, such as from 5.7 to 8.0, and it does not provide an upgrade indicator to prompt you to upgrade. For instructions on upgrading between release series, see Upgrading MySQL Using the Windows ZIP Distribution.

To perform an upgrade using MySQL Installer:

Start MySQL Installer.

From the dashboard, click Catalog to download the latest changes to the catalog. The installed server can be upgraded only if the dashboard displays an arrow next to the version number of the server.

Click Upgrade . All products that have a newer version now appear in a list.

MySQL Installer deselects the server upgrade option for milestone releases (Pre-Release) in the same release series. In addition, it displays a warning to indicate that the upgrade is not supported, identifies the risks of continuing, and provides a summary of the steps to perform an upgrade manually. You can reselect server upgrade and proceed at your own risk.

Deselect all but the MySQL server product, unless you intend to upgrade other products at this time, and click Next .

Click Execute to start the download. When the download finishes, click Next to begin the upgrade operation.

Upgrades to MySQL 8.0.16 and higher may show an option to skip the upgrade check and process for system tables. For more information about this option, see Important server upgrade conditions.

Configure the server.

Upgrading MySQL Using the Windows ZIP Distribution

To perform an upgrade using the Windows ZIP archive distribution:

Download the latest Windows ZIP Archive distribution of MySQL from https://dev.mysql.com/downloads/.

If the server is running, stop it. If the server is installed as a service, stop the service with the following command from the command prompt:

Alternatively, use NET STOP mysqld_service_name .

If you are not running the MySQL server as a service, use mysqladmin to stop it. For example, before upgrading from MySQL 5.7 to 8.0, use mysqladmin from MySQL 5.7 as follows:

If the MySQL root user account has a password, invoke mysqladmin with the -p option and enter the password when prompted.

Extract the ZIP archive. You may either overwrite your existing MySQL installation (usually located at C:\mysql ), or install it into a different directory, such as C:\mysql8 . Overwriting the existing installation is recommended.

Restart the server. For example, use the SC START mysqld_service_name or NET START mysqld_service_name command if you run MySQL as a service, or invoke mysqld directly otherwise.

Prior to MySQL 8.0.16, run mysql_upgrade as Administrator to check your tables, attempt to repair them if necessary, and update your grant tables if they have changed so that you can take advantage of any new capabilities. See Section 4.4.5, “ mysql_upgrade — Check and Upgrade MySQL Tables”. As of MySQL 8.0.16, this step is not required, as the server performs all tasks previously handled by mysql_upgrade .

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Mysql set charset windows 1251
  • Mysql root reset password windows
  • Mysql python windows pip
  • Mysql myphpadmin на сервере windows 2008
  • Mysql gui для windows