Q: Проблема установки MariaDB на Fedora 30 - PullRequest
1 голос
/ 05 октября 2019

Мне нужно установить MariaDB, и я следую официальным инструкциям Fedora Wiki, но мне не удалось выполнить правильную установку. Итак, сначала я запускаю команду dnf install mariadb mariadb-server (под пользователем root) и возвращаем

Пакет mysql-community-client-8.0.17-1.fc30.x86_64 уже установлен. Пакет mysql-community-server-8.0.17-1.fc30.x86_64 уже установлен. Зависимости устранены. Нечего делать. Завершено!

Поэтому я пытаюсь включить / запустить mariadb с systemctl start mariadb, а затем возвращается

Не удалось запустить mariadb.service: модуль mariadb.service не найден.

Я установил другие необходимые пакеты, такие как php, httpd, mysql и т. Д., И мне тоже нужно установить LAMP, но я получаю эту ошибку MariaDB. Не могли бы вы показать мне путь?

1 Ответ

0 голосов
/ 07 октября 2019

Это происходит потому, что пакеты mysql-community настроены на устаревшие пакеты mariadb.

Приведенный ниже подход может быть не самым оптимальным, каждый может легко его упростить.

Прежде всего, если у вас установлено mysql-community-* пакетов, возможно, у вас MySQL Community Репо настроено. Найдите ваш /etc/yum.repo.d и удалите его оттуда:

$ grep -ri community /etc/yum.repos.d/*
/etc/yum.repos.d/mysql.repo:[mysql80-community]
/etc/yum.repos.d/mysql.repo:name=MySQL 8.0 Community Server
/etc/yum.repos.d/mysql.repo:baseurl=http://repo.mysql.com/yum/mysql-8.0-community/fc/$releasever/$basearch/

sudo mv /etc/yum.repos.d/mysql.repo /tmp/

Затем проверьте, какие именно mysql-community-* пакеты у вас есть:

$ rpm -qa | grep mysql-community
mysql-community-server-8.0.17-1.fc30.x86_64
mysql-community-libs-8.0.17-1.fc30.x86_64
mysql-community-client-8.0.17-1.fc30.x86_64
mysql-community-common-8.0.17-1.fc30.x86_64

Самый простой способ избавиться отони просто удаляют их на dnf. Но это нужно сделать очень осторожно , потому что, если они были там какое-то время, у вас, вероятно, есть другие пакеты в зависимости от них. Поэтому, когда вы запускаете команду remove, убедитесь, что у вас нет автоматического выбора опции (-y), и проверьте вывод, прежде чем согласиться на удаление. Это может выглядеть примерно так:

$ sudo dnf remove mysql-community*
Dependencies resolved.
===================================================================================================================================================================================
 Package                                           Architecture                      Version                                   Repository                                     Size
===================================================================================================================================================================================
Removing:
 mysql-community-client                            x86_64                            8.0.17-1.fc30                             @mysql80-community                             66 M
 mysql-community-common                            x86_64                            8.0.17-1.fc30                             @mysql80-community                            8.3 M
 mysql-community-libs                              x86_64                            8.0.17-1.fc30                             @mysql80-community                            7.5 M
 mysql-community-server                            x86_64                            8.0.17-1.fc30                             @mysql80-community                            128 M
Removing dependent packages:
 perl-DBD-MySQL                                    x86_64                            4.050-2.fc30                              @fedora                                       367 k
Removing unused dependencies:

Обратите внимание на раздел Removing dependent packages. В качестве примера я добавил только один пакет, но в вашем случае он может быть намного длиннее и страшнее. Если у вас есть раздел и вы не знаете, можете ли вы безопасно удалить все его содержимое, может быть, лучше этого не делать (только пока). Прервите операцию.

Is this ok [y/N]: n
Operation aborted.

Вместо этого вы можете попробовать заменить пакетов mysql-community на MariaDB. Существует опция dnf --allowerasing, которая, кажется, делает свое дело, но вам нужно указать имена пакетов с версиями, чтобы обойти устаревание mysql (замените версию в команде реальной версией, доступной к тому времени, когда вы это делаете):

$ sudo dnf install --allowerasing --setopt=install_weak_deps=False mariadb-server-10.3.17 mariadb-10.3.17
Last metadata expiration check: 0:07:18 ago on Mon 07 Oct 2019 02:25:32 PM UTC.
Dependencies resolved.
===================================================================================================================================================================================
 Package                                             Architecture                    Version                                     Repository                                   Size
===================================================================================================================================================================================
Installing:
 mariadb                                             x86_64                          3:10.3.17-1.fc30                            updates                                     5.9 M
 mariadb-server                                      x86_64                          3:10.3.17-1.fc30                            updates                                      17 M
Installing dependencies:
 mariadb-common                                      x86_64                          3:10.3.17-1.fc30                            updates                                      36 k
 mariadb-connector-c-config                          noarch                          3.1.3-1.fc30                                updates                                      12 k
 mariadb-errmsg                                      x86_64                          3:10.3.17-1.fc30                            updates                                     205 k
 mysql-selinux                                       noarch                          1.0.0-8.fc30                                fedora                                       35 k
 psmisc                                              x86_64                          23.1-5.1.fc30                               fedora                                      133 k
Removing dependent packages:
 mysql-community-client                              x86_64                          8.0.17-1.fc30                               @mysql80-community                           66 M
 mysql-community-server                              x86_64                          8.0.17-1.fc30                               @mysql80-community                          128 M

Transaction Summary

Теперь ничего не удаляется как зависимости, кроме mysql-сообщества, которое было целью.

Опция --setopt=install_weak_deps=False не является строго необходимой, но без нееdnf устанавливает много пакетов, которые вам, вероятно, не нужны. Вы можете запустить без опции, чтобы увидеть разницу.

После замены пакетов сервера и клиента вы можете проверить, что еще осталось от сервера сообщества MySQL, и попытаться удалить оставшиеся пакеты, еслиВы хотите:

$ rpm -qa | grep mysql-community
mysql-community-libs-8.0.17-1.fc30.x86_64
mysql-community-common-8.0.17-1.fc30.x86_64

$ sudo dnf remove mysql-community-libs mysql-community-common
Dependencies resolved.
===================================================================================================================================================================================
 Package                                           Architecture                      Version                                   Repository                                     Size
===================================================================================================================================================================================
Removing:
 mysql-community-common                            x86_64                            8.0.17-1.fc30                             @mysql80-community                            8.3 M
 mysql-community-libs                              x86_64                            8.0.17-1.fc30                             @mysql80-community                            7.5 M

Transaction Summary

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


Есть одна загвоздка, о которой я могу думать. Если вы не знаете, почему изначально было установлено mysql-сообщество , возможно, у вас есть что-то, что требует именно этого, и вы не будете удовлетворены заменой MariaDB. Тогда это, вероятно, не позволит вам заменить пакеты. Но я не могу догадаться, что бы это могло быть, так что это зависит от вас, чтобы попытаться увидеть. Я полагаю, он будет отображаться в выводе dnf, который вы проверяете перед подтверждением.

...