1.前言
当安装MySQL,提示Failed to start mysqld.service: Unit not found,
此时是因为当前服务器的centOS系统版本过高,已不再支持MySQL的安装,取而代之的是MariaDB。而MariaDB在使用层面上与MySQL几乎没有区别(据说MariaDB的性能更优,并且有一堆优点,感兴趣的同学请移步某乎:MySQL和MariaDB哪个更好用?)
2.安装MariaDB
-
用yum指令安装MariaDB
yum install mariadb -y
-
如果此前因为安装mysql修改过my.cnf,则需要重新配置。输入下方指令:
cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
随后输入y
-
启动MariaDB,并设置为开机启动
systemctl start mariadb.service systemctl enable mariadb.service
-
手动设置初始密码(将密码设置为123):
mysqladmin -u root password '123'
3.删除空名账户
MariaDB有一个空名账户,该账户会导致用户无法在本地使用账号密码正确登录,并一直提示密码错误。
解决方案如下:
-
修改配置文件/etc/my.cnf,在[mysqld]下加入以下配置:
skip-grant-tables
-
重启MariaDB
systemctl restart mariadb.service
-
不使用密码登录mysql
mysql -u root
-
切换到"mysql"库,删除名为""的用户,随后退出
# 切换到mysql库 use mysql; # 删除名为""的用户 delete from user where User=''; # 刷新数据库 flush privileges; # 退出 exit;
-
重新修改配置文件/etc/my.cnf,删除刚刚添加的配置
-
重启MariaDB,此时已可以正常使用
systemctl restart mariadb.service
4.最后配置-使root能在任何host访问
在登录了mysql的前提下,输入下方三条指令
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES; #刷新
至此,mariaDB安装完毕。
2022年05月07日补充:
安装MariaDB后无法启动服务
centos7 安装mysql 解决 Failed to start mariadb.service: Unit not found.
systemctl start mariadb 启动的时候报Failed to start mariadb.service:Unit not found
通过yum安装mariaDB后,尝试输入下方指令启动mysql服务:
systemctl start mariadb.service
systemctl enable mariadb.service
报错:Failed to start mariadb.service:Unit not found
原因是MariaDB安装时,有部分依赖没有安装上。输入下方指令后解决问题:
yum -y install mariadb-embedded mariadb-libs mariadb-bench mariadb mariadb-sever
yum -y install mariadb-server mariadb mariadb-client mariadb-devel