web-dev-qa-db-fra.com

Erreur CentOS 7 MariaDB "Impossible de démarrer mariadb.service: unité introuvable."

Je suis un peu nouveau sur Linux, testant diverses configurations de LAMP dans Virtualbox sur Windows. J'ai actuellement un Centos 7 VM sur lequel j'essaie d'installer MariaDB. Je suis les instructions ici: http://www.tecmint.com/install-lamp-in -centos-7

L'Iran

# yum install mariadb-server mariadb

L'installation a réussi selon la sortie du terminal, mais lorsque je lance:

 # systemctl start mariadb

Je reçois

Failed to start mariadb.service: Unit not found.

J'ai passé quelques heures à googler cela, mais rien ne semble résoudre mon problème, y compris cela ( Pas de mysqld ou mysql.server après l'installation de mariadb-server ) et de nombreux autres messages.

Toute aide est grandement appréciée.

MISE À JOUR 01

J'ai désinstallé mariadb:

[root@centos7 admin]# yum remove mysql
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package MariaDB-client.x86_64 0:10.0.30-1.el7.centos will be erased
--> Processing Dependency: MariaDB-client for package: MariaDB-server-10.0.30-1.el7.centos.x86_64
--> Running transaction check
---> Package MariaDB-server.x86_64 0:10.0.30-1.el7.centos will be erased
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================
 Package              Arch         Version                    Repository      Size
===================================================================================
Removing:
 MariaDB-client       x86_64       10.0.30-1.el7.centos       @mariadb        49 M
Removing for dependencies:
 MariaDB-server       x86_64       10.0.30-1.el7.centos       @mariadb       237 M

Transaction Summary
===================================================================================
Remove  1 Package (+1 Dependent package)

Installed size: 286 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : MariaDB-server-10.0.30-1.el7.centos.x86_64                      1/2
  Erasing    : MariaDB-client-10.0.30-1.el7.centos.x86_64                      2/2
  Verifying  : MariaDB-client-10.0.30-1.el7.centos.x86_64                      1/2
  Verifying  : MariaDB-server-10.0.30-1.el7.centos.x86_64                      2/2

Removed:
  MariaDB-client.x86_64 0:10.0.30-1.el7.centos

Dependency Removed:
  MariaDB-server.x86_64 0:10.0.30-1.el7.centos

Complete!

a couru yum clean all et yum update

mariadb réinstallé:

# yum install mariadb-server mariadb
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * Webmin: download.webmin.com
 * base: anorien.csc.warwick.ac.uk
 * extras: centos.mirrors.nublue.co.uk
 * updates: centos.serverspace.co.uk
Package mariadb-server is obsoleted by MariaDB-server, trying to install MariaDB-server-10.0.30-1.el7.centos.x86_64 instead
Package mariadb is obsoleted by MariaDB-client, trying to install MariaDB-client-10.0.30-1.el7.centos.x86_64 instead
Resolving Dependencies
--> Running transaction check
---> Package MariaDB-client.x86_64 0:10.0.30-1.el7.centos will be installed
---> Package MariaDB-server.x86_64 0:10.0.30-1.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================
 Package              Arch         Version                     Repository     Size
===================================================================================
Installing:
 MariaDB-client       x86_64       10.0.30-1.el7.centos        mariadb        10 M
 MariaDB-server       x86_64       10.0.30-1.el7.centos        mariadb        55 M

Transaction Summary
===================================================================================
Install  2 Packages

Total download size: 65 M
Installed size: 65 M
Is this ok [y/d/N]: y
Downloading packages:
(1/2): MariaDB-10.0.30-centos7-x86_64-client.rpm            |  10 MB  00:00:22
(2/2): MariaDB-10.0.30-centos7-x86_64-server.rpm            |  55 MB  00:01:15
-----------------------------------------------------------------------------------
Total                                                 876 kB/s |  65 MB  01:15
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : MariaDB-client-10.0.30-1.el7.centos.x86_64                      1/2
  Installing : MariaDB-server-10.0.30-1.el7.centos.x86_64                      2/2
libsemanage.map_file: Unable to open /usr/share/mysql/SELinux/mariadb.pp
 (No such file or directory).
libsemanage.semanage_direct_install_file: Unable to read file /usr/share/mysql/SELinux/mariadb.pp
 (No such file or directory).
/usr/sbin/semodule:  Failed on /usr/share/mysql/SELinux/mariadb.pp!
  Verifying  : MariaDB-client-10.0.30-1.el7.centos.x86_64                      1/2
  Verifying  : MariaDB-server-10.0.30-1.el7.centos.x86_64                      2/2

Installed:
  MariaDB-client.x86_64 0:10.0.30-1.el7.centos
  MariaDB-server.x86_64 0:10.0.30-1.el7.centos

Complete!

Toujours pas, qu'est-ce qui donne?

# systemctl start mariadb.service
Failed to start mariadb.service: Unit not found.

MISE À JOUR 02

Il pourrait y avoir quelque chose avec les versions de package et la capitalisation, j'ai utilisé les dépôts mariaDB au lieu de centos pour l'installation, donc il a repris la version 10.0.30:

]# yum info mariadb-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * Webmin: download.webmin.com
 * base: anorien.csc.warwick.ac.uk
 * extras: centos.mirrors.nublue.co.uk
 * updates: centos.serverspace.co.uk
Installed Packages
Name        : MariaDB-server
Arch        : x86_64
Version     : 10.0.30
Release     : 1.el7.centos
Size        : 237 M
Repo        : installed
From repo   : mariadb
Summary     : MariaDB: a very fast and robust SQL database server
URL         : http://mariadb.org
License     : GPLv2
Description : MariaDB: a very fast and robust SQL database server
            :
            : It is GPL v2 licensed, which means you can use the it free of charge
            : under the conditions of the GNU General Public License Version 2
            : (http://www.gnu.org/licenses/).
            :
            : MariaDB documentation can be found at https://mariadb.com/kb
            : MariaDB bug reports should be submitted through
            : https://jira.mariadb.org

Available Packages
Name        : mariadb-server
Arch        : x86_64
Epoch       : 1
Version     : 5.5.52
Release     : 1.el7
Size        : 11 M
Repo        : base/7/x86_64
Summary     : The MariaDB server and related files
URL         : http://mariadb.org
License     : GPLv2 with exceptions and LGPLv2 and BSD
Description : MariaDB is a multi-user, multi-threaded SQL database server. It is a
            : client/server implementation consisting of a server daemon (mysqld)
            : and many different client programs and libraries. This package
            : contains the MariaDB server and some accompanying files and
            : directories. MariaDB is a community developed branch of MySQL.
4
B-and-P

Des recherches plus approfondies ont montré que dans MariaDB repo (v 10.0.30), le service s'appelle mysql, par opposition à centos repo (v5.5), il s'appelle mariadb, donc c'était une confusion/un problème.

Question de référence: MariaDB sur Centos7, service toujours appelé MySql

Fonctionnement # service mysql start a renvoyé ERROR

Vérification des erreurs avec

grep: journalctl -xe|grep 'mysqld.*errno'

Montré:

/usr/bin/mysqld_safe_helper: Cannot change uid/gid (errno: 1)

La suite de ce post semble avoir résolu le problème, lié à la version MariaDB 10.0.XX et à SELinux:

https://www.penguinprompt.com/mariadb-10-0-29-update-failure-selinux/

Je peux démarrer le service mysql et le configurer avec mysql_secure_installation

5
B-and-P

Je suppose que je vérifierais que mariadb-server est installé correctement - il semble contenir la définition du service:

rpm -qvla mariadb-server | grep service
-rw-r--r--    1 root    root                     1697 Nov 14 16:44 /usr/lib/systemd/system/mariadb.service

Vous pouvez également vérifier en utilisant yum:

> yum info mariadb-server
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: centos.mirror.triple-it.nl
 * extras: centos.mirror.transip.nl
 * updates: centos.ams.Host-engine.com
Installed Packages
Name        : mariadb-server
Arch        : x86_64
Epoch       : 1
Version     : 5.5.52
Release     : 1.el7
Size        : 56 M
Repo        : installed

Vous recherchez la dernière ligne ci-dessus pour dire installed, au lieu de base/7/x86_64.

Je viens d'essayer vos commandes d'installation sur une nouvelle image de centos7 (le conteneur Docker officiel de Centos) et je n'ai pas pu reproduire votre problème.

Vous pouvez essayer de réinstaller le serveur mariadb.

pdate: Je pense que votre problème est dû à votre package MariaDB provenant du référentiel webmin, plutôt que du référentiel de base. Désactiver cela temporairement (ou de façon permanente) peut aider: Sudo yum install --disablerepo=Webmin mariadb-server devrait résoudre votre problème immédiat (et/ou vous procurer les fichiers dont vous avez besoin).

A défaut, la définition du service est assez simple:

# It's not recommended to modify this file in-place, because it will be
# overwritten during package upgrades.  If you want to customize, the
# best way is to create a file "/etc/systemd/system/mariadb.service",
# containing
#       .include /lib/systemd/system/mariadb.service
#       ...make your changes here...
# or create a file "/etc/systemd/system/mariadb.service.d/foo.conf",
# which doesn't need to include ".include" call and which will be parsed
# after the file mariadb.service itself is parsed.
#
# For more info about custom unit files, see systemd.unit(5) or
# http://fedoraproject.org/wiki/Systemd#How_do_I_customize_a_unit_file.2F_add_a_custom_unit_file.3F

# For example, if you want to increase mariadb's open-files-limit to 10000,
# you need to increase systemd's LimitNOFILE setting, so create a file named
# "/etc/systemd/system/mariadb.service.d/limits.conf" containing:
#       [Service]
#       LimitNOFILE=10000

# Note: /usr/lib/... is recommended in the .include line though /lib/... 
# still works.
# Don't forget to reload systemd daemon after you change unit configuration:
# root> systemctl --system daemon-reload

[Unit]
Description=MariaDB database server
After=syslog.target
After=network.target

[Service]
Type=simple
User=mysql
Group=mysql

ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n
# Note: we set --basedir to prevent probes that might trigger SELinux alarms,
# per bug #547485
ExecStart=/usr/bin/mysqld_safe --basedir=/usr
ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID

# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300

# Place temp files in a secure directory, not /tmp
PrivateTmp=true

[Install]
WantedBy=multi-user.target
1
iwaseatenbyagrue

J'ai le même problème. Ma solution est: Sudo systemctl start mysql.service et Sudo chkconfig mysql on.

Vous devriez peut-être désactiver temporairement SeLinux avec: Sudo setenforce 0

Salutations

0
user4742258