Centos安装mysql后无法启动,提示 Unit mysql.service failed to load:No such file or directory

本文介绍了在CentOS 7上由于默认没有MySQL,需要安装MariaDB作为替代。步骤包括安装MariaDB,设置开机启动,配置密码,修改字符集,并详细讲解了用户创建与权限设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    由于CentOS 7 将mysql全部都改成了mariadb。所以在CentOS 下yum安装mysql是没有用的,因此直接启动mysql是不行的。必须下载MariaDB来代替Mysql。MariaDB数据库管理系统是MySQL的一个分支。


安装好MariaDB之后,它就可以完全代替MySQL。再也不会因为不能启动MySQL而导致不能启动Hive了!


一 .安装MariaDB(参考https://www.linuxidc.com/Linux/2016-03/128880.htm)

1、安装MariaDB

安装命令

yum -y install mariadb mariadb-server

安装完成MariaDB,首先启动MariaDB

systemctl start mariadb

设置开机启动

systemctl enable mariadb

接下来进行MariaDB的相关简单配置

mysql_secure_installation

首先是设置密码,会提示先输入密码

Enter current password for root (enter for none):<–初次运行直接回车

设置密码

### 解决 MySQL Service 文件状态获取失败的问题 当遇到 `Failed to get unit file state for mysql.service` 错误提示时,通常是因为系统中不存在名为 `mysql.service` 的服务文件或者该服务未被正确安装和配置[^1]。以下是可能的原因分析以及解决方案: #### 可能原因 1:MySQL 服务未安装 如果系统上尚未安装 MySQL 或 MariaDB,则不会存在对应的 `mysql.service` 文件。 ```bash sudo systemctl list-unit-files | grep mysql ``` 上述命令可以用来检查是否存在 `mysql.service` 单元文件。如果没有找到任何匹配项,则说明 MySQL 尚未安装。 ##### 解决方案: 可以通过包管理器重新安装 MySQL 并确保其服务已启用。 对于基于 Debian/Ubuntu 的系统: ```bash sudo apt update && sudo apt install mysql-server ``` 对于基于 RHEL/CentOS 的系统: ```bash sudo yum install mysql-server ``` 安装完成后启动并设置开机自启: ```bash sudo systemctl start mysql sudo systemctl enable mysql ``` --- #### 可能原因 2:Service 名称错误 某些 Linux 发行版可能会将默认的服务名称更改为其他形式,例如 `mariadb.service` 而不是 `mysql.service`。 ##### 验证方法: 运行以下命令查看是否有替代的服务名: ```bash systemctl status mariadb.service ``` 如果有输出表明服务正在运行,则可能是由于命名差异导致的误解。 ##### 解决方案: 尝试使用正确的服务名称操作: ```bash sudo systemctl restart mariadb sudo systemctl enable mariadb ``` --- #### 可能原因 3:YAML 文件定义不完整或路径错误 在 Kubernetes 环境下创建 YAML 定义文件(如提到的 `mysql-deployment.yaml`),可能导致容器化部署中的 MySQL 实例未能正常初始化。 ##### 示例 YAML 文件结构: 下面是一个简单的 MySQL Deployment 和 Service 定义示例: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:5.7 env: - name: MYSQL_ROOT_PASSWORD value: "password" ports: - containerPort: 3306 --- apiVersion: v1 kind: Service metadata: name: mysql spec: ports: - port: 3306 selector: app: mysql ``` ##### 检查步骤: 确认 YAML 文件是否已被成功应用到集群中: ```bash kubectl apply -f mysql-deployment.yaml kubectl get pods kubectl describe service mysql ``` 如果 Pod 处于 CrashLoopBackOff 或者 Error 状态,需进一步排查日志: ```bash kubectl logs <pod-name> ``` --- #### 总结 通过以上方式可有效定位并修复 `Failed to get unit file state for mysql.service` 的问题。具体措施取决于实际环境是本地服务器还是容器编排平台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值