CentOS 7 MariaDB 错误“无法启动 mariadb.service:未找到单元。”

B-a*_*d-P 5 yum mariadb centos7

我对 Linux 有点陌生,在 Windows 上的 Virtualbox 中测试了各种 LAMP 设置。目前我有一个 Centos 7 VM,我正在尝试在其上安装 MariaDB。我在这里遵循说明:http : //www.tecmint.com/install-lamp-in-centos-7

我跑了

# yum install mariadb-server mariadb
Run Code Online (Sandbox Code Playgroud)

根据终端输出安装成功,但是当我运行时:

 # systemctl start mariadb
Run Code Online (Sandbox Code Playgroud)

我得到

Failed to start mariadb.service: Unit not found.
Run Code Online (Sandbox Code Playgroud)

我花了几个小时在谷歌上搜索这个,但似乎没有什么能解决我的问题,包括这个(没有 mysqld 或 mysql.server after mariadb-server install)和许多其他帖子。

任何帮助是极大的赞赏。

更新 01

我卸载了 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!
Run Code Online (Sandbox Code Playgroud)

yum clean allyum update

重新安装 mariadb:

# 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!
Run Code Online (Sandbox Code Playgroud)

还是不行,怎么办?

# systemctl start mariadb.service
Failed to start mariadb.service: Unit not found.
Run Code Online (Sandbox Code Playgroud)

更新 02

可能有包版本和大小写的问题,我使用 mariaDB repos 而不是 centos 进行安装,所以它选择了 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.
Run Code Online (Sandbox Code Playgroud)

B-a*_*d-P 5

进一步的研究表明,在 MariaDB repo (v 10.0.30) 中,服务被称为mysql而不是 centos repo (v5.5),它被称为mariadb,所以这是一个混淆/问题。

参考问题:Centos7上的MariaDB,服务还是叫MySql

# service mysql start回来了ERROR

错误检查

grep: journalctl -xe|grep 'mysqld.*errno'
Run Code Online (Sandbox Code Playgroud)

显示:

/usr/bin/mysqld_safe_helper: Cannot change uid/gid (errno: 1)
Run Code Online (Sandbox Code Playgroud)

按照这篇文章似乎已经解决了这个问题,这与 MariaDB 10.0.XX 版本和 SELinux 有关系:

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

我能够启动 mysql 服务并配置它 mysql_secure_installation