MySQL, my.cnf и / etc / alternatives

История ( вопрос в 2020 году ниже )

2018 . После новой установки от 18.04, два года назад, я хотел использовать мою установку /etc/mysql/my.cnf от 16.04, чтобы вернуть все к тому, что было. Но установка MySQL устанавливает две символические ссылки

  • /etc/mysql/my.cnf -> /etc/alternatives/my.cnf
  • /etc/alternatives/my.cnf -> /etc/mysql/mysql.cnf

, поэтому я заменил новый /etc/mysql/mysql.cnf на мой старый 16.04 /etc/mysql/my.cnf .
Все шло хорошо до следующего обновления MySQL, в котором по некоторым причинам мой mysql.cnf был заменен новым. Ошибка? Принял ли я замену? Не думаю, но это всегда возможно.

Тогда я обошел альтернативную систему, то есть заменил ссылку /etc/mysql/my.cnf на мой файл my.cnf и обнуил mysql.cnf . Поскольку my.cnf имеет приоритет над mysql.cnf , который работал (я думаю, что пытался создать символическую ссылку mysql.cnf на мой my.cnf ] файл, и были другие проблемы, не помню).

( Если честно, мне не очень понравилась найденная мною альтернативная реализация, громоздкая и нелогичная )


2020 .Выполнено обновление с 18.04 по 20.04. И, естественно, MySQL воссоздал чистую среду с альтернативными ссылками. Хорошо.

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

  • продолжать использовать альтернативную систему или нет (в зависимости от вашего совета)
  • гарантировать, что в дальнейшем MySQL обновление (кроме версии 9) не перезапишет мою установку (или запросит)

Каков рекомендуемый способ сохранить чистую установку MySQL?

0
задан 14 October 2020 в 08:03

1 ответ

(Честно говоря, альтернативная реализация, которую я нашел, не очень понравилась, громоздкая и нелогичная)

Система альтернатив не специфична для MySQL; это общая система, которая используется в Debian и Ubuntu в самых разных пакетах. Я предлагаю вам узнать, как это работает и как с ним интегрироваться. Он разработан, чтобы предоставить пользователям полный контроль, поэтому они могут полностью отменить упаковку, если захотят, или вместо этого интегрироваться с ней, если им нужны преимущества, которые предоставляет упаковка.

Подробности см. на странице руководства update-alternatives(1).

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

Однако, если вы сделаете это, имейте в виду, что ваш my.cnf, скорее всего, выйдет из строя при обновлении Ubuntu в будущем, поскольку доступные директивы конфигурации меняются с основными выпусками MySQL. Вам нужно будет обновлять свой my.cnf по мере изменений MySQL.

Если вместо этого вы хотите, чтобы упаковка помогла, вы можете сделать то, что предлагает @Matigo в своем ответе, и добавить только переопределения, используя каталоги .d.Там, где это возможно, мы организуем упаковку для автоматической адаптации конфигурации, чтобы избежать поломки MySQL во время обновлений выпуска. Однако обычно мы делаем это только для отправленных пакетов файлов, а не для файлов, которые вы добавили сами.

В конечном счете, несмотря на то, что совершенно разумно отличаться от стандартных настроек упаковки, необходимо ожидать, что вам придется настраивать конфигурацию при обновлении между выпусками Ubuntu, поскольку MySQL ожидает изменения конфигурации между основными выпусками MySQL.

1
ответ дан 20 January 2021 в 12:36

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

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