现象:

在centOS7中启动MySQL数据库提示:

Failed to start mysqld.service: Unit not found

原因猜测:

在CentOS7中已经不在推荐使用mysql,甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险。

绕过此问题的几种方案:

鉴于一直有人呛我,说什么解决MySQL的问题安装MariaDB干什么,我确实也挺无语的。我觉得解决问题应该以结果为导向,问题能得到解决,我觉得就是好办法。

MariaDB的方式确实也是借鉴的大家主流的做法,为此我还专门去外网查了查国外大佬都是怎么解决的,发现也有很多是采用MariaDB替代MySQL:

https://stackoverflow.com/questions/31067135/in-centos7-can-not-start-mysql
https://www.linode.com/community/questions/17652/failed-to-start-mysqldservice-unit-not-found

好了好了,不多说了,下面介绍3种解决方案:

(1)首先介绍,来自评论区的方法

说我百度复制的哥哥的评论他自己删除了,还好我这里有记录啊
在这里插入图片描述

他当初还剖出了自己写的文章的地址,他自己在我的评论里删了,我给你剖出来:

https://blog.csdn.net/shenhaiyushitiaoyu/article/details/121396643?spm=1001.2014.3001.5501

这种方法我自己并没有验证,思路就是查找mysql.service这个文件,然后将这个文件复制到/etc/init.d目录下,这里我就不详细展开了,免得人家说我抄袭,但我网上查了查,类似的做法以前也早就有了,也很难说你就是原创的。

https://blog.csdn.net/q908544703/article/details/91376995
https://blog.csdn.net/luChenH/article/details/104376913

(2)其次介绍,'抄’来的MariaDB方式:

MariaDB是MySQL另起炉灶的开源版本,如同 MySQL 的影子版本,MariaDB数据库是 MySQL 的一个分支版本(branch),提供的功能可和 MySQL 完全兼容。

1、首先需要安装mariadb-server

yum install -y mariadb-server

2、启动服务

systemctl start mariadb.service

3、添加到开机启动

systemctl enable mariadb.service

4、进行一些安全设置,以及修改数据库管理员密码

mysql_secure_installation

在这里插入图片描述
5、mysql给root开启远程访问权限

use mysql;
select User,authentication_string,Host from user;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
flush privileges;

exit;
可能出现的问题:

MariadDB 启动时报错

Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.

解决方法:

[root@cdh01 mysql]# cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
[root@cdh01 mysql]# systemctl start mariadb.service

(3)最后,不认同MariadDB 的人可以选择docker方式:

我们公司打从前年就已经开始拥抱虚拟化了,不认同MariadDB 非要使用MySQL的人可以选择使用docker部署,docker部署也更加简单:

1、首先要部署docker服务:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
或者
curl -sSL https://get.daocloud.io/docker | sh

输入docker -v查看docker是否安装成功:
在这里插入图片描述
2、docker拉取MySQL镜像:

docker pull mysql:latest

如果不想拉取最新版,可以去下面的网站,拉取指定版本的MySQL:

https://hub.docker.com/_/mysql?tab=tags

3、docker查看本地镜像:

docker images

4、运行MySQL容器:

docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

参数说明:

-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。

5、docker ps可查看已启动的docker容器

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐