Миграция лампы Ubuntu 20.04 от MySQL в Mariadb


, который я в настоящее время запущен на ламповом сервере на Ubuntu 20.04, у которого есть сервер MySQL, содержащий несколько баз данных Drupal и WordPress, а также PHPMYADMIN DB.

Запрос
Есть ли некоторый эксперт Super Smart MySQL, который готов опубликовать «окончательное руководство» о том, как мигрировать рабочие базы данных из лампы (MySQL-сервера) на лампу (MariaDB-сервер), Содержит все шаги , начиная с

1.) «Шаг 1» = экспортировать желаемые рабочие базы данных,
2.) Чтобы полностью удалить MySQL Server, # при необходимости, я знаю, что Mariadb - это капля
3.) Чтобы установить на MariaDB-сервер,
4.) И «последний шаг» = импортировать желаемые рабочие базы данных?

Я искал онлайн в течение нескольких дней и может онлайн найти «по частям» учебниках. Я думаю, что Mariadb выигрывает MaralyShare, такое учебное пособие будет ценным для пользователей Ubuntu 18.04 / 20.04. Если такое гид уже уже существует, пожалуйста, переслать: -)

0
задан 18 January 2021 в 13:32

1 ответ

Будет сложно написать «исчерпывающее руководство» для каждой ситуации, поскольку каждый сервер индивидуален.Следует учитывать версии, а также механизмы баз данных и тому подобное. Тем не менее, основы будут выглядеть следующим образом:

1 - Экспорт всех баз данных (с неповрежденными процедурами и триггерами)

Первое - и самое важное - вы сначала экспортируете все свои базы данных. Однако есть некоторые, которые вам не понадобятся в дальнейшем, поэтому давайте экспортируем только те, которые вам небезразличны:

mysqldump -u {user} -p --events --routines --triggers wordpress > wordpress-export.sql
mysqldump -u {user} -p --events --routines --triggers drupal > drupal-export.sql
mysqldump -u {user} -p --events --routines --triggers phpmyadmin > phpmyadmin-export.sql

Не забудьте изменить {user} на учетную запись пользователя с самые высокие привилегии в вашей базе данных, иначе у вас может быть неполный экспорт. Не забудьте также изменить имена баз данных на их собственные имена, а имя экспорта - на какое-нибудь уникальное.

Я бы не рекомендовал использовать здесь флаг - all-databases , так как он будет включать три таблицы, специфичные для MySQL, которые не должны устанавливаться в вашу установку MariaDB, которую скоро создадут.

2 - Подготовьте список учетных записей базы данных

При создании новой базы данных важно убедиться, что все ваши важные учетные записи пользователей существуют. Мы можем запросить базу данных, чтобы узнать, что такое имена учетных записей пользователей, и, что более важно, мы можем запросить базу данных, чтобы построить операторы CREATE , которые нам понадобятся позже на шаге 5 этого. гид.

Войдите в свою установку MySQL и выполните этот запрос:

SELECT CONCAT('CREATE USER ''', `User`, '''@''', `Host`, ''' IDENTIFIED BY ''CorrectHorseBatteryStaple'';') as `username`
  FROM mysql.user
 WHERE `User` NOT LIKE 'mysql.%' and `User` NOT LIKE 'slave%'
   and `User` NOT IN ('root', 'debian-sys-maint')
 ORDER BY `username`;

Будет выведено что-то вроде:

CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'CorrectHorseBatteryStaple';
CREATE USER 'drupal'@'localhost' IDENTIFIED BY 'CorrectHorseBatteryStaple';
CREATE USER 'admin'@'%' IDENTIFIED BY 'CorrectHorseBatteryStaple';

Сохраните этот список где-нибудь в файле, так как он вам вскоре понадобится.

3 - Полное удаление MySQL с сервера

Если вы на 100% уверены, что у вас есть все необходимое из базы данных MySQL, сейчас самое время очистить это с сервера.

  1. Убедитесь, что MySQL не запущен:
    sudo systemctl stop mysql
  2. Полное удаление MySQL:
sudo apt purge mysql-server \ 
               mysql-client \ 
               mysql-common \ 
               mysql-server-core-* \ 
               mysql-client-core-*
  1. Удалите каталоги конфигурации, данных и журналов MySQL:
sudo rm -Rf /etc/mysql /var/lib/mysql /var/log/mysql
  1. Убедитесь, что в apt :
sudo apt autoremove
sudo apt autoclean

4 - Установка сервера MariaDB

Далее идет установка MariaDB. Я не буду перечислять все различные варианты конфигурации, которые вы, возможно, захотите установить, но укажу на пару, которые могут немного облегчить вашу жизнь. Но сначала давайте установим его:

sudo apt install mariadb-server
sudo mysql_secure_installation

Хотя MariaDB установлен на вашем сервере, большинство инструментов, которые вы будете использовать, будут нацелены на MySQL. Вот почему вторая команда - это mysql_secure_installation , а не то, что имеет более подходящее название.

Когда вы запустите mysql_secure_installation , вам будут заданы следующие вопросы:

  1. Введите текущий пароль для root (введите, если нет): ⇠ Нажмите Enter
  2. Установить пароль root? [Да / нет] ⇠ Выберите Да
  3. Введите пароль ⇠ Введите правильный пароль, затем введите его снова, когда вас попросят подтвердить.

Теперь, поскольку вы не можете войти в систему как root без sudo , вы, вероятно, захотите создать свою учетную запись со всеми правами администратора, которые могут вам понадобиться.

  1. Войдите в MariaDB:
    sudo mysql -u root -p
  2. Введите пароль, который вы определили ранее.
  3. Создайте свою учетную запись:
    СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'admin' @ 'localhost' ИДЕНТИФИЦИРОВАНО 'CorrectHorseBatteryStaple';
    Примечание: Не забудьте изменить admin на все, что хотите имя вашей учетной записи и CorrectHorseBatteryStaple менее известный пароль, который вы запомните.
  4. Предоставить все привилегии с возможностью делать ... все:
    ПРЕДОСТАВЛЯТЬ ВСЕ ПРИВИЛЕГИИ *.* TO 'admin' @ 'localhost' С ОПЦИЕЙ GRANT;
  5. Сбросьте привилегии:
    FLUSH PRIVILEGES; Very Important

5 - Восстановите учетные записи пользователей

Используя список вы подготовили ранее, воссоздайте различные учетные записи пользователей, необходимые для WordPress, Drupal и (возможно) phpMyAdmin.

CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'CorrectHorseBatteryStaple';
CREATE USER 'drupal'@'localhost' IDENTIFIED BY 'CorrectHorseBatteryStaple';

Примечание: Убедитесь, что вы задали имена пользователей и пароли, которые вам действительно нужны.

6 - Восстановите свои базы данных

Для каждой базы данных, которая вам нужна, запустите это в MariaDB:

CREATE DATABASE wordpress CHARACTER SET = utf8 COLLATE = utf8_general_ci;

Конечно, измените wordpress на фактическое имя базы данных, которую вы хотите создать .

7 - Импортировать все базы данных в новые базы данных

mysql -u {user} -p wordpress < wordpress-export.sql

Сделайте это для каждой из экспортированных баз данных, заменив имя базы данных и файл SQL на правильные. Если вы допустили ошибку и импортируете файл в неправильную базу данных, не беспокойтесь, вы можете «исправить» это следующим образом:

  1. Подключитесь к MariaDB:
    mysql -u admin -p
  2. Введите свой пароль
  3. Удалите случайно импортированную базу данных:
    DROP DATABASE whoopsie;
  4. Восстановите базу данных:
    CREATE DATABASE whoopsie CHARACTER SET = utf8 COLLATE = utf8_general_ci;
  5. Повторно импортируйте правильный файл.

Теперь мы можем установить разрешения для учетных записей, которые мы создали ранее:

GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';

Снова сделайте это для каждой учетной записи, убедившись, что у них есть доступ к правильным базам данных. После этого удалите привилегии, чтобы убедиться, что они активны:

FLUSH PRIVILEGES;

Теперь, на этом этапе, вы можете дважды проверить правильность имен баз данных, имен учетных записей и паролей для всех ваших веб-сайтов. Если все в порядке, перезапустите веб-сервер и проверьте его.

Важные примечания:

Я порекомендую, ПРОВЕРЬТЕ ЭТО ПРЕДВАРИТЕЛЬНО . Я видел, как много миграций MySQL⇢MariaDB шло в сторону, а потом люди звонили мне с сумасшедшей скоростью, чтобы исправить проблемы. Тест, тест, тест. Некоторые вещи в MySQL не работают прозрачно в MariaDB. Вы же не хотите, чтобы в процессе миграции обнаружилось, что таблица требует изменения параметров сортировки или файл импорта поврежден.

Если у вас есть опыт работы с виртуальными машинами, они идеально подходят для тестирования миграции с.

2
ответ дан 18 March 2021 в 23:42

Другие вопросы по тегам:

Похожие вопросы: